Risposte:
Fino a Magento versione 2.0.7 il numero di versione era mantenuto nella AppInterface::VERSION
costante.
Con il rilascio di Magento 2.1 la costante è stata rimossa.
Quindi fino alla 2.0.7 se controlli il file piè di pagina adminhtml in cui viene mostrata la versione
Aveva riferimento alla \Magento\Framework\AppInterface::VERSION
costante.
Ma dalla versione 2.1 di Magento il file footer ora utilizza il file\Magento\Backend\Block\Page\Footer::getMagentoVersion()
che a sua volta chiama il file \Magento\Framework\App\ProductMetadata::getVersion()
.
In precedenza ProductMetadata::getVersion()
veniva utilizzato per restituire il valore della costante \Magento\Framework\AppInterface::VERSION
, ma ora analizza composer.json
sia composer.lock
la versione magento che quella restituita
Quindi, indipendentemente dalla versione in 2.0.xo 2.1.x, se usi il \Magento\Framework\App\ProductMetadata::getVersion()
metodo, otterrai sempre la versione corretta di Magento.
Conclusione:
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
Puoi usarlo nelle versioni 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Per la versione 2.1:
Modo 1, usando DI:
public function __construct(
\Magento\Framework\App\ProductMetadataInterface $productMetadata
) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion()
{
return $this->productMetadata->getVersion();
}
Modo 2, utilizzando direttamente ObjectManager:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Le soluzioni citate non sono applicabili a partire da Magento 2.1 (la \Magento\Framework\AppInterface::VERSION
costante è stata rimossa)
Il nuovo modo per ottenere la versione è recuperarlo dall'istanza di metadati del prodotto (legge la versione da composer.json):
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
(meglio iniettare metadati del prodotto nel costruttore come \Magento\Framework\App\ProductMetadataInterface
)
Oltre alle altre risposte, puoi ottenere la versione principale (ad esempio 2.1) accedendo /magento_version
al tuo sito Web Magento 2.
Nel caso in cui qualcuno debba trovarlo manualmente. La versione base del modulo Magento si trova in questo file del compositore:
vendor/magento/magento2-base/composer.json
Inoltre, come suggerito sopra, per far funzionare il codice qui sotto:
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
\Magento\Framework\App\ProductMetadata
ora richiede istanza di ComposerJsonFinder
essere passato al momento dell'istanza.
Un esempio che ho trovato in 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);
Il codice sopra è puramente a scopo informativo. Devi scavare di più per farlo funzionare.
Puoi eseguire il comando seguente per ottenere la versione di magento:
php bin/magento --version
Per utenti come unix
Non è necessario scrivere alcun codice PHP per questo. Poiché Magento 2 utilizza il compositore, rende tutto più semplice. Puoi farlo in due modi:
Controlla il composer.json e cerca una chiave chiamata versione. Se sei come me a cui piace usare il terminale, puoi fare qualcosa di simile alla radice del progetto.
composer licenses | grep Version:
Ciò restituisce la versione di M2 se si desidera verificare se si tratta di una versione di comunità o aziendale, quindi effettuare le seguenti operazioni:
composer licenses | grep Name:
controlla semplicemente il file composer.json sulla radice magento2, troverai un testo come questo
"version": "2.1.2",
composer.json
potrebbe contenere un vincolo di versione come "^ 2.1" che non indica la versione esatta. Dovresti controllare il composer.lock
file per vedere quale versione esatta è attualmente installata.
Prova questo:
<?php echo __('Magento'); ?>
<?php echo __('ver. %1', \Magento\Framework\AppInterface::VERSION) ?>
Per la versione 2.1:
<?php
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
?>
<?php echo __('ver. %1', $version) ?>
Ecco alcuni modi per verificare la versione di Magento
Mage::getVersion() //will return the magento version
Controlla la versione di Magento 2
Puoi usarlo nelle versioni 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Per la versione 2.1:
Il primo modo, usando DI:
public function __construct( \Magento\Framework\App\ProductMetadataInterface $productMetadata ) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion() {
return $this->productMetadata->getVersion();
}
Il secondo modo, usando direttamente ObjectManager:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
È possibile eseguire il comando seguente per ottenere la versione di Magento 2:
php bin/magento --version
In realtà, dal momento che Magento 2 ha utilizzato il suo compositore in modo da non dover scrivere alcun codice PHP per questo. Invece, ci sono due opzioni per trovare la versione di Magento 2:
Innanzitutto, prova composer.json e cerca la parola chiave version. Se preferisci usare il terminale, puoi aggiungere qualcosa alla radice del progetto.
composer licenses | grep Version:
Un altro modo per verificare la versione di Magento 2 è la community o la versione enterprise, scrivere quanto segue
composer licenses | grep Name:
Utilizzare il servizio Web per controllare https://www.mageplaza.com/check-magento-version/
Per favore prova questo strumento online, funziona con entrambe le versioni di magento1.xe magento2.x https://www.talktojobs.com/check-magento-version/
composer.json
potrebbe contenere un vincolo di versione come "^ 2.1" che non indica la versione esatta, quindi Magento sta (anche) controllando ilcomposer.lock
file per vedere quale versione esatta è attualmente installata.