回答:
Magentoバージョン2.0.7まで、バージョン番号はAppInterface::VERSION
定数で維持されていました。
Magento 2.1のリリースで、定数は削除されました。
バージョンが表示されているadminhtmlフッターファイルを確認すると、2.0.7まで
\Magento\Framework\AppInterface::VERSION
定数を参照していました。
しかし、Magento 2.1のリリース以降、フッターファイルはを使用する\Magento\Backend\Block\Page\Footer::getMagentoVersion()
ようになりました\Magento\Framework\App\ProductMetadata::getVersion()
。
以前はProductMetadata::getVersion()
定数の値を返すために使用されて\Magento\Framework\AppInterface::VERSION
いましたが、今ではcomposer.json
同様に解析しcomposer.lock
、適切なmagentoバージョンを返します
したがって、2.0.xまたは2.1.xのどちらのバージョンを使用していても、この\Magento\Framework\App\ProductMetadata::getVersion()
メソッドを使用すると、常に適切なMagentoバージョンが取得されます。
結論:
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
これは2.0.xバージョンで使用できます。
echo \Magento\Framework\AppInterface::VERSION;
バージョン2.1の場合:
方法1、DIを使用:
public function __construct(
\Magento\Framework\App\ProductMetadataInterface $productMetadata
) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion()
{
return $this->productMetadata->getVersion();
}
方法2、ObjectManagerを直接使用する:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
言及されたソリューションは、Magento 2.1以降では適用されません(\Magento\Framework\AppInterface::VERSION
定数が削除されました)
バージョンを取得する新しい方法は、製品メタデータインスタンスからバージョンを取得することです(composer.jsonからバージョンを読み取ります)。
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
(としてコンストラクタに製品メタデータを注入する方が良い\Magento\Framework\App\ProductMetadataInterface
)
誰かが手動で見つけなければならない場合に。基本のMagentoモジュールバージョンは、このコンポーザファイルにあります。
vendor/magento/magento2-base/composer.json
また、上記で提案したように、以下のコードを機能させるには:
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
\Magento\Framework\App\ProductMetadata
ComposerJsonFinder
インスタンス化時にのインスタンスを渡す必要があります。
私が見つけた例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);
上記のコードは、情報提供のみを目的としています。動作させるには、さらに掘り下げる必要があります。
以下のコマンドを実行して、magentoバージョンを取得できます。
php bin/magento --version
UNIXのようなユーザー向け
このためにPHPコードを記述する必要はありません。Magento 2は作曲家を利用するため、すべてが簡単になります。これには2つの方法があります。
composer.jsonを確認し、バージョンと呼ばれるキーを探します。ターミナルを使用するのが好きな私のようであれば、プロジェクトのルートで何かをすることができます。
composer licenses | grep Version:
コミュニティまたはエンタープライズバージョンであるかどうかを確認する場合、M2のバージョンを返します。次の操作を実行します。
composer licenses | grep Name:
これを試して:
<?php echo __('Magento'); ?>
<?php echo __('ver. %1', \Magento\Framework\AppInterface::VERSION) ?>
バージョン2.1の場合:
<?php
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
?>
<?php echo __('ver. %1', $version) ?>
Magentoのバージョンを確認する方法を次に示します
Mage::getVersion() //will return the magento version
Magento 2のバージョンを確認する
これは2.0.xバージョンで使用できます。
echo \Magento\Framework\AppInterface::VERSION;
バージョン2.1の場合:
DIを使用する最初の方法:
public function __construct( \Magento\Framework\App\ProductMetadataInterface $productMetadata ) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion() {
return $this->productMetadata->getVersion();
}
2番目の方法、ObjectManagerを直接使用する:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
以下のコマンドを実行して、Magento 2バージョンを取得できます。
php bin/magento --version
実際、Magento 2はそのコンポーザーを使用しているため、このためにPHPコードを記述する必要はありません。代わりに、Magento 2バージョンを見つけるための2つのオプションがあります。
まず、composer.jsonを試して、バージョンキーワードを探してください。ターミナルの使用を希望する場合は、プロジェクトのルートに何かを追加できます。
composer licenses | grep Version:
Magento 2バージョンの天気を確認する別の方法は、コミュニティエディションまたはエンタープライズエディションです。次のように書いてください。
composer licenses | grep Name:
Webサービスを使用してhttps://www.mageplaza.com/check-magento-version/を確認します
Plsはこのツールをオンラインで試してください。magento1.xとmagento2.xの両方のバージョンで動作し ますhttps://www.talktojobs.com/check-magento-version/
composer.json
正確なバージョンを示さない「^ 2.1」のようなバージョン制約が含まれている可能性があるため、Magentoは(また)composer.lock
ファイルをチェックして、現在インストールされている正確なバージョンを確認しています。