Я знаю, что я загрузил проект Symfony2
и начал с него, но я несколько раз обновил свой поставщик и хочу узнать, какая версия symfony у меня
Любая идея?
Я знаю, что я загрузил проект Symfony2
и начал с него, но я несколько раз обновил свой поставщик и хочу узнать, какая версия symfony у меня
Любая идея?
Запустите 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
.
Если вы хотите динамически отображать версию 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 также автоматически обновляется в вашем шаблоне. Я знаю, что это слишком много, но это то, как я делаю это в своих проектах и работает
мы можем найти версию 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**
если вы пытаетесь использовать версию 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)
если вы находитесь в app_dev, вы можете найти версию symfony в нижнем левом углу страницы
Внутри вашего проекта Symfony вы можете получить значение в PHP следующим образом:
$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;