Как узнать, какая версия Symfony у меня есть?
Я знаю, что я загрузил проект Symfony2
и начал с, но я несколько раз обновлял своего поставщика, и я хочу знать, какая версия symfony у меня есть
Есть идеи?
11 answers
Запустите 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
для инициализации своего родительского конструктора.
Другой способ - посмотреть на источник для Symfony\Component\HttpKernel\Kernel
, где определено const VERSION
. Пример на GitHub
Локально это было бы расположено в vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
.
Если вы хотите динамически отображать свою версию 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 для обновления вашего поставщика, версия symfony также автоматически обновляется в вашем шаблоне.Я знаю, что это перебор, но вот как я это делаю в своей проекты, и он работает
Мы можем найти версию 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**
Если вы пытаетесь использовать версию symfony
Пожалуйста, попробуйте с
Симфония 2+
Cmd>приложение/консоль php -- версия
Симфония 3+
Cmd>php bin/консоль --версия
Например
D:проект>php bin/консоль --версия
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 находится в версии 2.3.9, а пакет sonata-project/admin - в версии 2.3.7, в соответствии с командой composer show
.