Magento 2-プログラムによるMagentoバージョンのチェック(CE / EE)


回答:


9

\Magento\Framework\App\ProductMetadataInterfaceコンストラクタに注入する必要があります。

protected $productMetadata;

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

次に、次の方法で現在のMagentoバージョンを取得できます(そのProductMetadataInterfaceオブジェクトが$productMetadataフィールドに割り当てられている場合):

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

エディション(コミュニティ/エンタープライズ):

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


2

方法1:

Magentoの標準的な方法を使用して、サイトのバージョンを取得します。ブロックを使用する-テンプレートの方法は、magento 2で関数を呼び出すための適切な方法です。

ブロックファイル内

<?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ファイル内、

echo $block->getVersion();

Direct ObjectManagerを使用することは、magento 2で使用する適切な方法ではありません。

  $objManager = \Magento\Framework\App\ObjectManager::getInstance();
  $magentoVersion = $objManager->get('Magento\Framework\App\ProductMetadataInterface');
  echo $magentoVersion->getVersion();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.