Odpowiedzi:
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ł, console
tworzy instancję Symfony\Bundle\FrameworkBundle\Console\Application
. W tym konstruktorze klasy używa Symfony\Component\HttpKernel\Kernel::VERSION
do zainicjowania konstruktora nadrzędnego.
/Symfony/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
bin/console --version
Innym sposobem jest przyjrzenie się źródłu Symfony\Component\HttpKernel\Kernel
gdzie const VERSION
jest zdefiniowane. Przykład na GitHub
Lokalnie byłoby to zlokalizowane w vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
.
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.
Użyj następującego polecenia w swoim terminalu / wierszu polecenia:
php bin/console --version
To da ci twoją wersję Symfony.
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.
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.
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**
Z wnętrza projektu Symfony możesz pobrać wartość w PHP w ten sposób:
$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
jeśli jesteś w app_dev, możesz znaleźć wersję symfony w lewym dolnym rogu strony
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
composer show
poleceniem.