Jak się dowiedzieć, którą wersję Symfony posiadam?

127

Wiem, że pobrałem Symfony2projekt i zacząłem od niego, ale kilkakrotnie aktualizowałem mojego dostawcę i chcę wiedzieć, którą wersję symfony mam

Dowolny pomysł ?

zizoujab
źródło
sonata-project / core-bundle jest w wersji 2.3.9, a sonata-project / admin-bundle w wersji 2.3.7, zgodnie z composer showpoleceniem.
Patrick,

Odpowiedzi:

219

Uruchom app/console --version(dla Symfony3:) bin/console --version, powinno dać ci całkiem niezły pomysł. W przypadku mojego losowego projektu wynik jest następujący:

Symfony version 2.2.0-DEV - app/dev/debug

Jeśli nie możesz uzyskać dostępu do konsoli, spróbuj przeczytać symfony/src/Symfony/Component/HttpKernel/Kernel.php, gdzie wersja jest zakodowana na stałe , na przykład:

const VERSION         = '2.2.0';

Na wypadek, gdybyś się zastanawiał, consoletworzy instancję Symfony\Bundle\FrameworkBundle\Console\Application. W tym konstruktorze klasy używa Symfony\Component\HttpKernel\Kernel::VERSIONdo zainicjowania konstruktora nadrzędnego.

Diego Agulló
źródło
3
lub po prostu spójrz na lewy górny róg paska programistów symfony (widoczny tylko w modzie deweloperów)!
zizoujab
To jest dość wysoko na liście Google "jak wykryć wersję symfony", ale mam tylko dostęp FTP do serwera. Jaki plik wskazywałby, która wersja Symfony jest używana?
HMR
@HMR właśnie poprawił odpowiedź, więc obejmuje Twój przypadek. Mam nadzieję, że okaże się to przydatne! :)
Diego Agulló
1
Dziękuję bardzo, znalazłem to/Symfony/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
HMR
7
dla mnie tobin/console --version
Czarny
24

Innym sposobem jest przyjrzenie się źródłu Symfony\Component\HttpKernel\Kernelgdzie const VERSIONjest zdefiniowane. Przykład na GitHub

Lokalnie byłoby to zlokalizowane w vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php.

Adam Elsodaney
źródło
20

Chociaż jest już wiele dobrych odpowiedzi, chciałbym dodać opcję, o której nie wspomniano. Za pomocą polecenia:

php bin/console about

możesz uzyskać wiele szczegółów dotyczących aktualnego projektu. Pierwsza sekcja dotyczy samej Symfony i wygląda następująco:

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

Uważam, że inne informacje poza numerem wersji są bardzo przydatne.

Istnieją również inne sekcje zawierające szczegółowe informacje o (frameworku) jądra, PHP, środowisku.

cezar
źródło
11

Użyj następującego polecenia w swoim terminalu / wierszu polecenia:

php bin/console --version

To da ci twoją wersję Symfony.

user2815519
źródło
7

Jeśli chcesz dynamicznie wyświetlać swoją wersję Symfony 2 na stronach, na przykład w stopce, możesz to zrobić w ten sposób.

Utwórz usługę:

<?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;
}
}

Zarejestruj się w service.yml

 dut.twig.symfony_version_extension:
    class: Project\Bundle\DutBundle\Twig\SymfonyVersionExtension
    tags:
        - { name: twig.extension }
    #arguments: []

I możesz to nazwać wszędzie. W kontrolerze zawiń go w JSON lub w przykładowej stopce stron

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

Teraz za każdym razem, gdy uruchamiasz aktualizację kompozytora, aby zaktualizować dostawcę, wersja symfony również automatycznie zaktualizuje się w Twoim szablonie. Wiem, że to przesada, ale tak to robię w moich projektach i to działa.

cezar
źródło
5

także możesz sprawdzić wersję symfony i wersje wszystkich innych zainstalowanych pakietów, uruchamiając

composer show

lub

composer show | grep sonata

aby uzyskać wersje określonych pakietów, takich jak sonata itp.

Pavel Alazankin
źródło
4

możemy znaleźć wersję symfony używając pliku Kernel.php , ale problem polega na tym, że lokalizacja Kernala zmienia się z wersji na wersję (Better Do File Search in your Project Directory)

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

Sprawdź w kontrolerze / pliku PHP

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
echo $symfony_version; // this will return version; **o/p:3.0.4-DEV**
Mohammad Fareed
źródło
3

jeśli próbujesz z wersją symfony

proszę spróbuj

symfony 2 +

cmd> php app / console --version

symfony 3+

cmd> php bin / console --version

na przykład

D: projekt> php bin / console --version

Symfony 3.2.8 (kernel: app, env: dev, debug: true)
afeef
źródło
2

Z wnętrza projektu Symfony możesz pobrać wartość w PHP w ten sposób:

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
redreinard
źródło
1

jeśli jesteś w app_dev, możesz znaleźć wersję symfony w lewym dolnym rogu strony

jef
źródło
1
Być może będziesz musiał otworzyć pasek narzędzi debugowania, klikając logo Symfony w prawym dolnym rogu ekranu;)
Nic Wortel
1

Dla Symfony 3.4

Sprawdź stałą w tym pliku vendor / symfony / http-kernel / Kernel.php

const VERSION = '3.4.3';

LUB

composer show | grep symfony/http-kernel
Yogesh Yadav
źródło