Respuestas:
Hasta la versión 2.0.7 de Magento, el número de versión se mantenía en la AppInterface::VERSION
constante.
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::VERSION
constante.
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.lock
y 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::VERSION
se 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_version
a 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\ProductMetadata
ahora requiere ComposerJsonFinder
que 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.json
puede contener una restricción de versión como "^ 2.1" que no indica la versión exacta. Debe verificar el composer.lock
archivo 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.json
puede 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.lock
archivo para ver qué versión exacta está instalada actualmente.