Magento 2 - Verificar programaticamente a versão Magento (CE / EE)

Respostas:

9

Você precisa injetar \Magento\Framework\App\ProductMetadataInterfaceno seu construtor.

protected $productMetadata;

public function __construct(
    ...
    \Magento\Framework\App\ProductMetadataInterface $productMetadata,
    ...
) {
    $this->productMetadata = $productMetadata;
    parent::__construct(...);
}

Então você pode obter a versão atual do Magento (assumindo que o ProductMetadataInterfaceobjeto esteja atribuído ao $productMetadatacampo):

$version = $this->productMetadata->getVersion();

E edição (Comunidade / Empresa) por:

$edition = $this->productMetadata->getEdition();

Bartłomiej Szubert
fonte
2

Método 1:

Use a maneira padrão do Magento para obter a versão do seu site. Usar a maneira Bloco - Modelo é a maneira correta de chamar qualquer função no magento 2,

Arquivo Inside Block,

<?php
namespace Vendor\Modulename\Block
class Version extends \Magento\Framework\View\Element\Template{

protected $_productMetadata;

    public function __construct(
        \Magento\Framework\View\Element\Template\Context $context,
        \Magento\Framework\App\ProductMetadataInterface $productMetadata,
        array $data = []
    ) {
        parent::__construct($context,$data);
        $this->_productMetadata = $productMetadata;
    }

    public function getVersion()
    {
        return $this->_productMetadata->getVersion();
    }
}

templatearquivo interno ,

echo $block->getVersion();

Usar o Direct Objectmanager não é a maneira correta de usar no magento 2,

  $objManager = \Magento\Framework\App\ObjectManager::getInstance();
  $magentoVersion = $objManager->get('Magento\Framework\App\ProductMetadataInterface');
  echo $magentoVersion->getVersion();
Rakesh Jesadiya
fonte