Respostas:
Até Magento versão 2.0.7, o número da versão era mantido na AppInterface::VERSION
constante.
Com o lançamento do Magento 2.1, a constante foi removida.
Até a versão 2.0.7, se você verificar o arquivo de rodapé adminhtml em que a versão é mostrada
Tinha referência à \Magento\Framework\AppInterface::VERSION
constante.
Mas desde que o Magento 2.1 libera, o arquivo de rodapé agora usa o \Magento\Backend\Block\Page\Footer::getMagentoVersion()
que, por sua vez, chama o \Magento\Framework\App\ProductMetadata::getVersion()
.
Anteriormente, o ProductMetadata::getVersion()
usado para retornar o valor da constante \Magento\Framework\AppInterface::VERSION
, mas agora analisa o composer.json
, bem como composer.lock
e retorna a versão Magento apropriada
Portanto, não importa qual versão você esteja no 2.0.x ou 2.1.x, se você usar o \Magento\Framework\App\ProductMetadata::getVersion()
método, sempre obterá a versão apropriada do Magento.
Conclusão:
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
Você pode usar isso nas versões 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Para a versão 2.1:
Maneira 1, usando DI:
public function __construct(
\Magento\Framework\App\ProductMetadataInterface $productMetadata
) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion()
{
return $this->productMetadata->getVersion();
}
Caminho 2, usando o ObjectManager diretamente:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
As soluções mencionadas não são aplicáveis a partir do Magento 2.1 (a \Magento\Framework\AppInterface::VERSION
constante foi removida)
A nova maneira de obter a versão é recuperá-la da Instância de metadados do produto (lê a versão do compositer.json):
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
(melhor injetar metadados do produto no construtor como \Magento\Framework\App\ProductMetadataInterface
)
Além das outras respostas, você pode obter a versão principal (por exemplo 2.1) acessando /magento_version
no site Magento 2.
Caso alguém precise encontrá-lo manualmente. A versão básica do módulo Magento está localizada neste arquivo do compositor:
vendor/magento/magento2-base/composer.json
Também como sugerido acima, para fazer o código abaixo funcionar:
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
\Magento\Framework\App\ProductMetadata
agora requer instância de ComposerJsonFinder
seja passada no momento da instanciação.
Um exemplo que encontrei em 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);
O código acima é apenas para fins informativos. Você tem que cavar mais para fazê-lo funcionar.
Você pode executar o comando abaixo para obter a versão magento:
php bin/magento --version
Para usuários do tipo unix
Não é necessário escrever nenhum código PHP para isso. Como o Magento 2 utiliza o compositor, tudo fica mais fácil. Você pode fazer isso de duas maneiras:
Verifique o compositer.json e procure uma chave chamada version. Se você é como eu e gosta de usar o terminal, pode fazer algo como na raiz do projeto.
composer licenses | grep Version:
Isso retorna a versão do M2, se você deseja verificar se é uma versão comunitária ou corporativa, basta fazer o seguinte:
composer licenses | grep Name:
basta verificar o arquivo composer.json na raiz do magento2, você encontrará um texto como este
"version": "2.1.2",
composer.json
pode conter uma restrição de versão como "^ 2.1" que não indica a versão exata. Você deve verificar o composer.lock
arquivo para ver qual versão exata está atualmente instalada.
Tente o seguinte:
<?php echo __('Magento'); ?>
<?php echo __('ver. %1', \Magento\Framework\AppInterface::VERSION) ?>
Para a versão 2.1:
<?php
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
?>
<?php echo __('ver. %1', $version) ?>
Aqui estão algumas maneiras de verificar a versão do Magento
Mage::getVersion() //will return the magento version
Verifique a versão Magento 2
Você pode usar isso nas versões 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Para a versão 2.1:
A primeira maneira, usando DI:
public function __construct( \Magento\Framework\App\ProductMetadataInterface $productMetadata ) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion() {
return $this->productMetadata->getVersion();
}
A segunda maneira, usando o ObjectManager diretamente:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Você pode executar o comando abaixo para obter a versão Magento 2:
php bin/magento --version
Na verdade, como o Magento 2 utilizou seu compositor, você não precisa escrever nenhum código PHP para isso. Em vez disso, existem duas opções para encontrar a versão Magento 2:
Primeiro, tente o compositor.json e procure a palavra-chave version. Se você preferir usar o terminal, pode adicionar algo na raiz do projeto.
composer licenses | grep Version:
Outra maneira de verificar o clima da versão Magento 2 é a edição comunitária ou empresarial, por favor escreva o seguinte
composer licenses | grep Name:
Use o serviço web para verificar https://www.mageplaza.com/check-magento-version/
Por favor, tente esta ferramenta online, ela funciona para as versões do magento1.xe magento2.x https://www.talktojobs.com/check-magento-version/
composer.json
pode conter uma restrição de versão como "^ 2.1" que não indica a versão exata, então o Magento (também) está verificando ocomposer.lock
arquivo para ver qual versão exata está atualmente instalada.