Я знаю, что я загрузил проект 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
, где версия жестко запрограммирована , например:
const VERSION = '2.2.0';
На всякий случай, когда вам интересно, console
создает экземпляр Symfony\Bundle\FrameworkBundle\Console\Application
. В этом конструкторе класса он использует Symfony\Component\HttpKernel\Kernel::VERSION
для инициализации родительского конструктора.
Другой способ – посмотреть на источник для Symfony\Component\HttpKernel\Kernel
для которого определена 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 \ vendor \ 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;