Alguém sabe da melhor maneira que um módulo pode verificar se está sendo executado no Magento 2 Enterprise Edition e qual número exato da versão está sendo usado?
7
Alguém sabe da melhor maneira que um módulo pode verificar se está sendo executado no Magento 2 Enterprise Edition e qual número exato da versão está sendo usado?
Você precisa injetar \Magento\Framework\App\ProductMetadataInterface
no 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 ProductMetadataInterface
objeto esteja atribuído ao $productMetadata
campo):
$version = $this->productMetadata->getVersion();
E edição (Comunidade / Empresa) por:
$edition = $this->productMetadata->getEdition();
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();
}
}
template
arquivo 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();