Как узнать, какая версия Symfony у меня есть?

Я знаю, что я скачал Symfony2 проект и начал с, но я обновил своего поставщика несколько раз, и я хочу знать, какая версия symfony у меня есть

есть идеи ?

11 ответов


Run app/console --version (для Symfony3: bin/console --version), это должно дать вам довольно хорошую идею. На случайном моем проекте выход:

Symfony version 2.2.0-DEV - app/dev/debug

если вы не можете получить доступ к консоли, попробуйте прочитать symfony/src/Symfony/Component/HttpKernel/Kernel.php, где версия hardcoded, например:

const VERSION         = '2.2.0';

на всякий случай, если вам интересно,console создает экземпляр Symfony\Bundle\FrameworkBundle\Console\Application. В этом конструкторе класса, он использует Symfony\Component\HttpKernel\Kernel::VERSION для инициализации родительского конструктора.


другой способ-посмотреть на источник Symfony\Component\HttpKernel\Kernel где const VERSION определяется. Пример GitHub

локально это будет расположено в vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php.


Если вы хотите dynamicallly отображать версию Symfony 2 на страницах, например, в нижнем колонтитуле, вы можете сделать это таким образом.

создать службу

<?php

namespace Project\Bundle\DuBundle\Twig;

class SymfonyVersionExtension extends \Twig_Extension
{


 public function getFunctions()
 {
 return array(
 //this is the name of the function you will use in twig
 new \Twig_SimpleFunction('symfony_version', array($this, 'b'))
   );
 }

public function getName()
{
//return 'number_employees';
 return 'symfony_version_extension';
}   

public function b()
{
 $symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
 return $symfony_version;
}
}

зарегистрироваться в сервисе.в формате YML

 dut.twig.symfony_version_extension:
    class: Project\Bundle\DutBundle\Twig\SymfonyVersionExtension
    tags:
        - { name: twig.extension }
    #arguments: []

и вы можете назвать его в любом месте.В контроллере оберните его в JSON или в нижнем колонтитуле примера страниц

 <p> Built With Symfony {{ symfony_version() }} Version MIT License</p>

Теперь каждый раз, когда вы запускаете composer update для обновления вашего поставщика, версия symfony также автоматически обновляется в вашем шаблоне.Я знаю, это перебор. но вот как я это делаю в своих проектах, и это работает


мы можем найти версию symfony, используя ядра.в PHP файл, но проблема в том, что расположение ядра будет меняться от версии к версии (лучше сделать поиск файлов в каталоге проекта)

в symfony 3.0 : на my_project\поставщика\в Symfony\Symfony с\НИЦ\в Symfony\компонент\HttpKernel\ядра.в PHP

проверка из файла контроллера / PHP

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
echo $symfony_version; // this will return version; **o/p:3.0.4-DEV**

Если вы пытаетесь с версией symfony

пожалуйста, попробуйте с

symfony 2+

cmd>php app / console --version

symfony 3+

cmd>php bin / console --version

D: проект>php bin / console --version

Symfony 3.2.8 (kernel: app, env: dev, debug: true)

также вы можете проверить версию symfony и версии всех других установленных пакетов, запустив

composer show

или

composer show | grep sonata

чтобы получить версии определенных пакетов, таких как sonata и т. д.


используйте следующую команду в вашем терминале/командной строки:

php bin/console --version

Это даст Вам Вашу версию Symfony.


Если вы находитесь в app_dev, вы можете найти версию symfony в левом нижнем углу страницы


из вашего проекта Symfony вы можете получить значение в PHP следующим образом:

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;

Для Symfony 3.4

Проверьте константу в этом файле vendor/symfony/http-kernel / Kernel.в PHP

const VERSION = '3.4.3';

или

composer show | grep symfony/http-kernel

sonata-project / core-bundle находится в версии 2.3.9, а sonata-project / admin-bundle - в версии 2.3.7, согласно .