Réponses:
Jusqu'à la version 2.0.7 de Magento, le numéro de version était maintenu dans la AppInterface::VERSIONconstante.
Avec la sortie de Magento 2.1, la constante a été supprimée.
Donc, jusqu'à 2.0.7 si vous vérifiez le fichier de pied de page adminhtml où la version est affichée
Il faisait référence à la \Magento\Framework\AppInterface::VERSIONconstante.
Mais depuis la sortie de Magento 2.1, le fichier de pied de page utilise désormais le \Magento\Backend\Block\Page\Footer::getMagentoVersion()qui, à son tour, appelle le \Magento\Framework\App\ProductMetadata::getVersion().
Auparavant ProductMetadata::getVersion()utilisé pour renvoyer la valeur de la constante \Magento\Framework\AppInterface::VERSION, mais maintenant il analyse composer.jsonaussi bien que composer.locket retourne la version appropriée de magento
Quelle que soit la version sur laquelle vous vous trouvez, soit 2.0.x ou 2.1.x, si vous utilisez la \Magento\Framework\App\ProductMetadata::getVersion()méthode, vous obtiendrez toujours la bonne version de Magento.
Conclusion:
Magento 1:
Mage::getVersion() //will return the magento version
Magento 2:
//Updated to use object manager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
$version = $productMetadata->getVersion(); //will return the magento version
Vous pouvez l'utiliser dans les versions 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Pour la version 2.1:
Voie 1, en utilisant DI:
public function __construct(
\Magento\Framework\App\ProductMetadataInterface $productMetadata
) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion()
{
return $this->productMetadata->getVersion();
}
Méthode 2, en utilisant directement ObjectManager:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Les solutions mentionnées ne sont pas applicables à partir de Magento 2.1 (la \Magento\Framework\AppInterface::VERSIONconstante a été supprimée)
La nouvelle façon d'obtenir la version est de la récupérer à partir de l'instance de métadonnées du produit (lit la version de composer.json):
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
(il vaut mieux injecter les métadonnées du produit au constructeur en tant que \Magento\Framework\App\ProductMetadataInterface)
En plus des autres réponses, vous pouvez obtenir la version principale (par exemple 2.1) en accédant /magento_versionà votre site Web Magento 2.
Si quelqu'un doit le trouver manuellement. La version de base du module Magento se trouve dans ce fichier compositeur:
vendor/magento/magento2-base/composer.json
Aussi comme suggéré ci-dessus, pour faire fonctionner le code ci-dessous:
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
\Magento\Framework\App\ProductMetadatarequiert maintenant que l'instance de ComposerJsonFindersoit passée au moment de l'instanciation.
Un exemple que j'ai trouvé dans dev/tests/integration/testsuite/Magento/Framework/Composer/ComposerInformationTest.php:
$directories = [
DirectoryList::CONFIG => [DirectoryList::PATH => __DIR__ . '/_files/'],
DirectoryList::ROOT => [DirectoryList::PATH => __DIR__ . '/_files/' . $composerDir],
DirectoryList::COMPOSER_HOME => [DirectoryList::PATH => __DIR__ . '/_files/' . $composerDir],
];
$this->directoryList = $this->objectManager->create(
'Magento\Framework\App\Filesystem\DirectoryList',
['root' => __DIR__ . '/_files/' . $composerDir, 'config' => $directories]
);
$this->composerJsonFinder = new ComposerJsonFinder($this->directoryList);
Le code ci-dessus est purement informatif. Vous devez creuser davantage pour que cela fonctionne.
Vous pouvez exécuter la commande ci-dessous pour obtenir la version de magento:
php bin/magento --version
Pour les utilisateurs comme Unix
Pas besoin d'écrire de code PHP pour cela. Parce que Magento 2 utilise le compositeur, il est plus facile. Vous pouvez procéder de deux manières:
Vérifiez le composer.json et recherchez une clé appelée version. Si vous êtes comme moi qui aime utiliser le terminal, vous pouvez faire quelque chose comme à la racine du projet.
composer licenses | grep Version:
Cela renvoie la version du M2 si vous souhaitez vérifier s'il s'agit d'une version communautaire ou d'entreprise, puis procédez comme suit:
composer licenses | grep Name:
vérifiez simplement le fichier composer.json à la racine de magento2, vous trouverez du texte comme celui-ci
"version": "2.1.2",
composer.jsonpeut contenir une contrainte de version comme "^ 2.1" qui n'indique pas la version exacte. Vous devriez vérifier le composer.lockfichier pour voir quelle version exacte est actuellement installée.
Essaye ça:
<?php echo __('Magento'); ?>
<?php echo __('ver. %1', \Magento\Framework\AppInterface::VERSION) ?>
Pour la version 2.1:
<?php
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
?>
<?php echo __('ver. %1', $version) ?>
Voici quelques façons de vérifier la version de Magento
Mage::getVersion() //will return the magento version
Vérifier la version de Magento 2
Vous pouvez l'utiliser dans les versions 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Pour la version 2.1:
La première façon, en utilisant DI:
public function __construct( \Magento\Framework\App\ProductMetadataInterface $productMetadata ) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion() {
return $this->productMetadata->getVersion();
}
La deuxième façon, en utilisant directement ObjectManager:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Vous pouvez exécuter la commande ci-dessous pour obtenir la version de Magento 2:
php bin/magento --version
En fait, puisque Magento 2 a utilisé son compositeur pour que vous n'ayez pas besoin d'écrire de code PHP pour cela. Au lieu de cela, il existe deux options pour trouver la version de Magento 2:
Tout d'abord, essayez le composer.json et recherchez le mot-clé version. Si vous préférez utiliser le terminal, vous pouvez ajouter quelque chose à la racine du projet.
composer licenses | grep Version:
Une autre façon de vérifier la météo de la version de Magento 2 est l'édition communautaire ou d'entreprise, veuillez écrire ce qui suit
composer licenses | grep Name:
Utilisez le service Web pour vérifier https://www.mageplaza.com/check-magento-version/
Veuillez essayer cet outil en ligne, il fonctionne pour les deux versions de magento1.x et magento2.x https://www.talktojobs.com/check-magento-version/
composer.jsonpeut contenir une contrainte de version comme "^ 2.1" qui n'indique pas la version exacte, donc Magento vérifie (également) lecomposer.lockfichier pour voir quelle version exacte est actuellement installée.