Comment savoir quelle version de Symfony je possède?


128

Je sais que j'ai téléchargé un Symfony2projet et commencé avec mais j'ai mis à jour mon fournisseur plusieurs fois et je veux savoir quelle version de symfony j'ai

Une idée ?


sonata-project / core-bundle est à la version 2.3.9 et sonata-project / admin-bundle est à la version 2.3.7, selon la composer showcommande.
Patrick le

Réponses:


220

Run app/console --version(pour Symfony3 :) bin/console --version, cela devrait vous donner une assez bonne idée. Sur un de mes projets aléatoires, le résultat est:

Symfony version 2.2.0-DEV - app/dev/debug

Si vous ne pouvez pas accéder à la console, essayez de lire symfony/src/Symfony/Component/HttpKernel/Kernel.php, où la version est codée en dur , par exemple:

const VERSION         = '2.2.0';

Juste au cas où vous vous poseriez la question, consolecrée une instance de Symfony\Bundle\FrameworkBundle\Console\Application. Dans ce constructeur de classe, il utilise Symfony\Component\HttpKernel\Kernel::VERSIONpour initialiser son constructeur parent.


4
ou jetez simplement un œil en haut à gauche dans la barre de développement symfony (visible uniquement dans le mod de développement)!
zizoujab

C'est assez élevé sur la liste google "comment détecter la version symfony" mais je n'ai qu'un accès FTP au serveur. Quel fichier indiquerait quelle version de Symfony est utilisée?
HMR

@HMR vient d'améliorer la réponse pour qu'elle couvre votre cas. J'espère que vous le trouverez utile! :)
Diego Agulló

1
Merci beaucoup, je l'ai trouvé/Symfony/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
HMR

7
pour moi c'estbin/console --version
Noir

24

Une autre façon est de regarder la source Symfony\Component\HttpKernel\Kernelpour savoir où const VERSIONest défini. Exemple sur GitHub

Localement, ce serait situé dans vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php.


20

Bien qu'il y ait déjà beaucoup de bonnes réponses, j'aimerais ajouter une option qui n'a pas été mentionnée. En utilisant la commande:

php bin/console about

vous pouvez obtenir de nombreux détails sur le projet en cours. La première section concerne Symfony lui-même et ressemble à ceci:

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

Je trouve les autres informations en plus du numéro de version très utiles.

Il existe également d'autres sections fournissant des détails sur le noyau (framework), PHP, l'environnement.


11

Utilisez la commande suivante dans votre terminal / invite de commandes:

php bin/console --version

Cela vous donnera votre version Symfony.


7

Si vous souhaitez afficher de manière dynamique votre version Symfony 2 dans les pages, par exemple en pied de page, vous pouvez le faire de cette façon.

Créez un service:

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

Inscrivez-vous sur service.yml

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

Et vous pouvez l'appeler n'importe où. Dans Controller, enveloppez-le dans JSON ou dans un exemple de pied de page

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

Maintenant, chaque fois que vous exécutez la mise à jour de composer pour mettre à jour votre fournisseur, la version de symfony sera également automatiquement mise à jour dans votre modèle. Je sais que c'est exagéré, mais c'est comme ça que je le fais dans mes projets et cela fonctionne.


5

vous pouvez également vérifier la version de symfony et les versions de tous les autres paquets installés en exécutant

composer show

ou

composer show | grep sonata

pour obtenir des versions de packages spécifiques comme sonata, etc.


4

nous pouvons trouver la version de symfony en utilisant le fichier Kernel.php mais le problème est que l'emplacement des changements de Kernal Will d'une version à l'autre (Better Do File Search dans votre répertoire de projet)

dans symfony 3.0: mon_projet \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ Kernel.php

Vérifier à partir du contrôleur / fichier PHP

$symfony_version = \Symfony\Component\HttpKernel\Kernel::VERSION;
echo $symfony_version; // this will return version; **o/p:3.0.4-DEV**

3

si vous essayez avec la version symfony

essayez avec

symfony 2 +

cmd> application / console php --version

symfony 3+

cmd> php bin / console --version

par exemple

D: projet> php bin / console --version

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

2

Depuis l'intérieur de votre projet Symfony, vous pouvez obtenir la valeur en PHP de cette façon:

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

1

si vous êtes dans app_dev, vous pouvez trouver la version de symfony dans le coin inférieur gauche de la page


1
Vous devrez peut-être ouvrir la barre d'outils de débogage en cliquant sur le logo Symfony dans le coin inférieur droit de votre écran;)
Nic Wortel

1

Pour Symfony 3.4

Vérifiez la constante dans ce fichier vendor / symfony / http-kernel / Kernel.php

const VERSION = '3.4.3';

OU

composer show | grep symfony/http-kernel
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.