Як дізнатися, яку версію Symfony у мене є?


127

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

Будь-яка ідея?


sonata-project / core-bundle знаходиться у версії 2.3.9, а sonata-project / admin-bundle - у версії 2.3.7, згідно з composer showкомандою.
Патрік

Відповіді:


219

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


3
або просто подивіться вгорі зліва в панелі розробників symfony (видно лише в програмі dev)!
zizoujab

Це досить високий вміст у списку google "як виявити версію symfony", але у мене є лише FTP доступ до сервера. Який файл буде вказувати, яка версія Symfony використовується?
HMR

@HMR просто покращила відповідь, щоб вона охоплювала вашу справу. Сподіваюся, вам це стане в нагоді! :)
Дієго Агулло

1
Дуже дякую, знайшли/Symfony/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
HMR

7
для мене цеbin/console --version
Чорний

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, довкілля.


11

Використовуйте таку команду у своєму терміналі / командному рядку:

php bin/console --version

Це дасть вам вашу версію Symfony.


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: []

І назвати це можна де завгодно. У програмі Controller загорніть його в JSON або у нижній колонтитул сторінки

 <p> Built With Symfony {{ symfony_version() }} Version MIT License</p>

Тепер кожен раз, коли ви запускаєте оновлення композитора для оновлення свого постачальника, версія symfony також автоматично оновлюватиметься у вашому шаблоні. Я знаю, що це надмірність, але саме так я це роблю в своїх проектах, і це працює.


5

також ви можете перевірити версію symfony та версії всіх інших встановлених пакетів, запустивши

composer show

або

composer show | grep sonata

щоб отримати версії конкретних пакетів, таких як соната тощо.


4

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

в 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 додаток / консоль - конверсія

symfony 3+

cmd> php bin / console - перехід

наприклад

D: проект> php бін / консоль --версія

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

2

Зсередини проекту Symfony ви можете отримати значення в PHP таким чином:

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

1

якщо ви перебуваєте в app_dev, ви можете знайти симфонічну версію в лівому нижньому куті сторінки


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.