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

79

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

Любая идея?

Теги:

7 ответов

123
Лучший ответ

Запустите 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 для инициализации своего родительского конструктора.

  • 3
    или просто посмотрите вверху слева в панели разработчиков Symfony (виден только в моде dev)!
  • 0
    Это довольно много в списке «Как определить версию Symfony», но у меня есть только FTP-доступ к серверу. Какой файл будет указывать, какая версия Symfony используется?
Показать ещё 5 комментариев
12

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

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

5

Если вы хотите динамически отображать версию 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;
}
}

Зарегистрируйтесь в service.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>

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

3

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

в symfony 3.0: my_project\поставщика\Symfony\Symfony\SRC\Symfony\Component\HttpKernel\Kernel.php

Проверить файл Controller/PHP

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

если вы пытаетесь использовать версию symfony

попробуйте

symfony 2 +

cmd > php app/console --version

symfony 3 +

cmd > php bin/console --version

например

D: project > php bin/console --version

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

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

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

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

  • 1
    Возможно, вам придется открыть панель инструментов отладки, нажав на логотип Symfony в правом нижнем углу экрана;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню