Réponses:
Jusqu'à la version 2.0.7 de Magento, le numéro de version était maintenu dans la AppInterface::VERSION
constante.
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::VERSION
constante.
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.json
aussi bien que composer.lock
et 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::VERSION
constante 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\ProductMetadata
requiert maintenant que l'instance de ComposerJsonFinder
soit 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.json
peut contenir une contrainte de version comme "^ 2.1" qui n'indique pas la version exacte. Vous devriez vérifier le composer.lock
fichier 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.json
peut contenir une contrainte de version comme "^ 2.1" qui n'indique pas la version exacte, donc Magento vérifie (également) lecomposer.lock
fichier pour voir quelle version exacte est actuellement installée.