Magento 2 - Magento-Version (CE / EE) programmgesteuert prüfen


Antworten:


9

Sie müssen \Magento\Framework\App\ProductMetadataInterfacein Ihren Konstruktor injizieren .

protected $productMetadata;

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

Dann können Sie die aktuelle Magento-Version erhalten, indem Sie (vorausgesetzt, das ProductMetadataInterfaceObjekt ist dem $productMetadataFeld zugewiesen ):

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

Und Ausgabe (Community / Enterprise) von:

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


2

Methode 1:

Verwenden Sie die Magento-Standardmethode, um eine Version Ihrer Site zu erhalten. Die Verwendung der Block-Template-Methode ist die richtige Methode, um Funktionen in Magento 2 aufzurufen.

Innerhalb der Blockdatei,

<?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();
    }
}

in templateDatei,

echo $block->getVersion();

Die Verwendung von Direct Objectmanager ist in Magento 2 nicht geeignet.

  $objManager = \Magento\Framework\App\ObjectManager::getInstance();
  $magentoVersion = $objManager->get('Magento\Framework\App\ProductMetadataInterface');
  echo $magentoVersion->getVersion();
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.