Respuestas:
Hasta la versión 2.0.7 de Magento, el número de versión se mantenía en la AppInterface::VERSIONconstante.
Con el lanzamiento de Magento 2.1 se eliminó la constante.
Así que hasta 2.0.7 si marca el archivo de pie de página adminhtml donde se muestra la versión
Tenía referencia a la \Magento\Framework\AppInterface::VERSIONconstante.
Pero desde que se lanzó Magento 2.1, el archivo de pie de página ahora usa el \Magento\Backend\Block\Page\Footer::getMagentoVersion()que a su vez llama a \Magento\Framework\App\ProductMetadata::getVersion().
Anteriormente, la ProductMetadata::getVersion()utiliza para devolver el valor de la constante \Magento\Framework\AppInterface::VERSION, pero ahora se analiza el composer.json, así como composer.locky devuelve la versión de Magento apropiada
Entonces, no importa en qué versión se encuentre en 2.0.xo 2.1.x, si usa el \Magento\Framework\App\ProductMetadata::getVersion()método, siempre obtendrá la versión de Magento adecuada.
Conclusión:
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
Puede usar esto en versiones 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Para la versión 2.1:
Camino 1, usando DI:
public function __construct(
\Magento\Framework\App\ProductMetadataInterface $productMetadata
) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion()
{
return $this->productMetadata->getVersion();
}
Camino 2, usando ObjectManager directamente:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Las soluciones mencionadas no son aplicables a partir de Magento 2.1 ( \Magento\Framework\AppInterface::VERSIONse eliminó la constante)
La nueva forma de obtener la versión es recuperarla de la instancia de metadatos del producto (lee la versión de composer.json):
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
(mejor inyectar metadatos del producto al constructor como \Magento\Framework\App\ProductMetadataInterface)
Además de las otras respuestas, puede obtener la versión principal (por ejemplo 2.1) accediendo /magento_versiona su sitio web Magento 2.
En caso de que alguien tenga que encontrarlo manualmente. La versión básica del módulo Magento se encuentra en este archivo compositor:
vendor/magento/magento2-base/composer.json
También como se sugirió anteriormente, para que el código siguiente funcione:
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
\Magento\Framework\App\ProductMetadataahora requiere ComposerJsonFinderque se pase la instancia en el momento de la instanciación.
Un ejemplo que encontré en 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);
El código anterior es solo para fines informativos. Tienes que cavar más para que funcione.
Puede ejecutar el siguiente comando para obtener la versión de magento:
php bin/magento --version
Para usuarios como Unix
No es necesario escribir ningún código PHP para esto. Debido a que Magento 2 utiliza compositor, lo hace todo más fácil. Puedes hacer esto de dos maneras:
Compruebe el composer.json y busque una clave llamada versión. Si eres como yo a quien le gusta usar el terminal, puedes hacer algo como en la raíz del proyecto.
composer licenses | grep Version:
Esto devuelve la versión del M2 si desea verificar si se trata de una versión comunitaria o empresarial, simplemente haga lo siguiente:
composer licenses | grep Name:
simplemente verifique el archivo composer.json en la raíz magento2, encontrará un texto como este
"version": "2.1.2",
composer.jsonpuede contener una restricción de versión como "^ 2.1" que no indica la versión exacta. Debe verificar el composer.lockarchivo para ver qué versión exacta está instalada actualmente.
Prueba esto:
<?php echo __('Magento'); ?>
<?php echo __('ver. %1', \Magento\Framework\AppInterface::VERSION) ?>
Para la versión 2.1:
<?php
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
?>
<?php echo __('ver. %1', $version) ?>
Aquí hay algunas formas de verificar la versión de Magento
Mage::getVersion() //will return the magento version
Verifique la versión de Magento 2
Puede usar esto en versiones 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Para la versión 2.1:
La primera forma, usando DI:
public function __construct( \Magento\Framework\App\ProductMetadataInterface $productMetadata ) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion() {
return $this->productMetadata->getVersion();
}
La segunda forma, usando ObjectManager directamente:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Puede ejecutar el siguiente comando para obtener la versión de Magento 2:
php bin/magento --version
En realidad, dado que Magento 2 ha utilizado su compositor para que no necesite escribir ningún código PHP para esto. En cambio, hay dos opciones para encontrar la versión de Magento 2:
En primer lugar, pruebe composer.json y busque la palabra clave de versión. Si prefiere usar la terminal, puede agregar algo en la raíz del proyecto.
composer licenses | grep Version:
Otra forma de verificar la versión de Magento 2 es la edición comunitaria o empresarial, escriba lo siguiente
composer licenses | grep Name:
Use el servicio web para verificar https://www.mageplaza.com/check-magento-version/
Pruebe esta herramienta en línea, funciona para ambas versiones de magento1.x y magento2.x https://www.talktojobs.com/check-magento-version/
composer.jsonpuede contener una restricción de versión como "^ 2.1" que no indica la versión exacta, por lo que Magento (también) está verificando elcomposer.lockarchivo para ver qué versión exacta está instalada actualmente.