Відповіді:
До Magento версії 2.0.7 номер версії підтримувався AppInterface::VERSION
постійним.
З випуском Magento 2.1 константа була видалена.
Тож до 2.0.7, якщо ви перевіряєте файл нижнього колонтитула adminhtml, де відображається версія
Він мав посилання на \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
)
Поверх інших відповідей, ви можете отримати основну версію (наприклад , 2.1) шляхом доступу /magento_version
на веб - сайті Magento 2.
У випадку, якщо комусь доведеться знайти його вручну. Основна версія модуля 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 використовує композитор, це робить все простіше. Це можна зробити двома способами:
Перевірте composer.json і знайдіть ключ, який називається версією. Якщо ви схожі на мене, який любить користуватися терміналом, ви можете зробити щось на кшталт кореня проекту.
composer licenses | grep Version:
Це повертає версію M2, якщо ви хочете перевірити її спільноту або версію підприємства, тоді просто виконайте наступне:
composer licenses | grep Name:
просто перевірте файл composer.json у корені magento2, ви знайдете такий текст
"version": "2.1.2",
composer.json
може містити обмеження версії типу "^ 2.1", яке не вказує точної версії. Ви повинні перевірити composer.lock
файл, щоб побачити, яка саме версія на даний момент встановлена.
Спробуйте це:
<?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();
}
Другий спосіб, безпосередньо використовуючи 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 версії:
По-перше, спробуйте composer.json і шукайте ключове слово версії. Якщо ви віддаєте перевагу використанню терміналу, ви можете додати щось у корені проекту.
composer licenses | grep Version:
Ще один спосіб перевірити Magento 2 версію погоди - це громада чи корпоративне видання, будь ласка, напишіть наступне
composer licenses | grep Name:
Використовуйте веб-сервіс для перевірки https://www.mageplaza.com/check-magento-version/
Спробуйте цей інструмент в Інтернеті, він працює для обох версій magento1.x та magento2.x https://www.talktojobs.com/check-magento-version/
composer.json
може містити обмеження версії на зразок "^ 2.1", яке не вказує точної версії, тому Magento (також) перевіряєcomposer.lock
файл, щоб побачити, яка точна версія наразі встановлена.