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

128

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

Любая идея ?

zizoujab
источник
Согласно composer showкоманде, sonata-project / core-bundle имеет версию 2.3.9, а sonata-project / admin-bundle - версию 2.3.7 .
Патрик

Ответы:

220

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

Symfony version 2.2.0-DEV - app/dev/debug

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

const VERSION         = '2.2.0';

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

Диего Агулло
источник
4
или просто взгляните на верхний левый угол в панели разработки Symfony (отображается только в моде разработчика)!
zizoujab 09
Это довольно высокий пункт в списке Google "как определить версию Symfony", но у меня есть только FTP-доступ к серверу. В каком файле будет указано, какая версия Symfony используется?
HMR
@HMR просто улучшил ответ, чтобы охватить ваш случай. Надеюсь, что вы найдете ее полезной! :)
Diego Agulló
1
Большое спасибо, нашел/Symfony/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
HMR
7
для меня этоbin/console --version
Black
24

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

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

Адам Элсодани
источник
20

Хотя есть уже много хороших ответов, я хотел бы добавить вариант, о котором не упоминалось. Используя команду:

php bin/console about

вы можете получить много подробностей о текущем проекте. Первый раздел посвящен самой Symfony и выглядит так:

-------------------- ------------------------------------------- 
 Symfony                                                         
-------------------- ------------------------------------------- 
 Version              4.2.3                                      
 End of maintenance   07/2019                                    
 End of life          01/2020                                    
-------------------- ------------------------------------------- 

Я считаю очень полезной другую информацию, помимо номера версии.

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

Cezar
источник
11

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

php bin/console --version

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

user2815519
источник
7

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

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

Cezar
источник
5

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

composer show

или

composer show | grep sonata

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

Павел Алазанкин
источник
4

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

в symfony 3.0: my_project \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ Kernel.php

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

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
echo $symfony_version; // this will return version; **o/p:3.0.4-DEV**
Мохаммад Фарид
источник
3

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

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

Symfony 2+

cmd> приложение php / console --version

Symfony 3+

cmd> php bin / console - версия

например

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

Symfony 3.2.8 (kernel: app, env: dev, debug: true)
afeef
источник
2

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

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
redreinard
источник
1

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

Джеф
источник
1
Возможно, вам потребуется открыть панель инструментов отладки, щелкнув логотип Symfony в правом нижнем углу экрана;)
Nic Wortel
1

Для Symfony 3.4

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

const VERSION = '3.4.3';

ИЛИ

composer show | grep symfony/http-kernel
Йогеш Ядав
источник