Jawaban:
Hingga Magento versi 2.0.7 nomor versi dipertahankan dalam AppInterface::VERSION
konstanta.
Dengan dirilisnya Magento 2.1, konstanta dihapus.
Jadi hingga 2.0.7 jika Anda memeriksa file footer adminhtml di mana versi tersebut ditampilkan
Itu merujuk pada \Magento\Framework\AppInterface::VERSION
konstanta.
Tetapi sejak Magento 2.1 merilis file footer sekarang menggunakan \Magento\Backend\Block\Page\Footer::getMagentoVersion()
yang pada gilirannya memanggil \Magento\Framework\App\ProductMetadata::getVersion()
.
Sebelumnya ProductMetadata::getVersion()
digunakan untuk mengembalikan nilai konstanta \Magento\Framework\AppInterface::VERSION
, tetapi sekarang mem-parsing composer.json
juga composer.lock
dan mengembalikan versi magento yang sesuai
Jadi, apa pun versi Anda pada 2.0.x atau 2.1.x, jika Anda menggunakan \Magento\Framework\App\ProductMetadata::getVersion()
metode ini, Anda akan selalu mendapatkan versi Magento yang tepat.
Kesimpulan:
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
Anda dapat menggunakan ini dalam versi 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Untuk versi 2.1:
Cara 1, menggunakan DI:
public function __construct(
\Magento\Framework\App\ProductMetadataInterface $productMetadata
) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion()
{
return $this->productMetadata->getVersion();
}
Cara 2, menggunakan ObjectManager secara langsung:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Solusi yang disebutkan tidak berlaku mulai dari Magento 2.1 ( \Magento\Framework\AppInterface::VERSION
konstan dihapus)
Cara baru untuk mendapatkan versi adalah dengan mengambilnya dari Product Metadata Instance (membaca versi dari composer.json):
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
(lebih baik menyuntikkan Metadata Produk ke konstruktor sebagai \Magento\Framework\App\ProductMetadataInterface
)
Di atas jawaban lain, Anda bisa mendapatkan versi utama (misalnya 2.1) dengan mengakses /magento_version
situs web Magento 2 Anda.
Jika seseorang harus menemukannya secara manual. Versi modul Magento dasar terletak di file komposer ini:
vendor/magento/magento2-base/composer.json
Juga seperti yang disarankan di atas, untuk membuat kode di bawah ini berfungsi:
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
\Magento\Framework\App\ProductMetadata
sekarang membutuhkan instance ComposerJsonFinder
untuk dilewatkan pada saat instantiation.
Contoh yang saya temukan di 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);
Kode di atas adalah murni untuk tujuan informasi. Anda harus menggali lebih dalam untuk membuatnya berfungsi.
Anda dapat menjalankan perintah di bawah ini untuk mendapatkan versi magento:
php bin/magento --version
Untuk pengguna seperti unix
Tidak perlu menulis kode PHP apa pun untuk ini. Karena Magento 2 menggunakan komposer, itu membuatnya lebih mudah. Anda dapat melakukan ini dengan dua cara:
Periksa composer.json dan cari kunci yang disebut versi. Jika Anda seperti saya yang suka menggunakan terminal, Anda dapat melakukan sesuatu seperti pada root proyek.
composer licenses | grep Version:
Ini mengembalikan versi M2 jika Anda ingin memeriksa apakah itu komunitas atau versi perusahaan kemudian lakukan hal berikut:
composer licenses | grep Name:
cukup periksa file composer.json pada root magento2, Anda akan menemukan teks seperti ini
"version": "2.1.2",
composer.json
mungkin mengandung batasan versi seperti "^ 2.1" yang tidak menunjukkan versi yang tepat. Anda harus memeriksa composer.lock
file untuk melihat versi apa yang saat ini diinstal.
Coba ini:
<?php echo __('Magento'); ?>
<?php echo __('ver. %1', \Magento\Framework\AppInterface::VERSION) ?>
Untuk versi 2.1:
<?php
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
?>
<?php echo __('ver. %1', $version) ?>
Berikut adalah beberapa cara untuk memeriksa versi Magento
Mage::getVersion() //will return the magento version
Periksa versi Magento 2
Anda dapat menggunakan ini dalam versi 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Untuk versi 2.1:
Cara pertama, menggunakan DI:
public function __construct( \Magento\Framework\App\ProductMetadataInterface $productMetadata ) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion() {
return $this->productMetadata->getVersion();
}
Cara kedua, menggunakan ObjectManager secara langsung:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Anda dapat menjalankan perintah di bawah ini untuk mendapatkan versi Magento 2:
php bin/magento --version
Sebenarnya, karena Magento 2 telah menggunakan komposernya sehingga Anda tidak perlu menulis kode PHP apa pun untuk ini. Sebagai gantinya, ada dua opsi untuk menemukan versi Magento 2:
Pertama, silakan coba composer.json dan cari kata kunci versi. Jika Anda lebih suka menggunakan terminal, Anda dapat menambahkan sesuatu di root proyek.
composer licenses | grep Version:
Cara lain untuk memeriksa cuaca versi Magento 2 apakah itu edisi komunitas atau perusahaan, silakan tulis yang berikut ini
composer licenses | grep Name:
Gunakan layanan web untuk memeriksa https://www.mageplaza.com/check-magento-version/
Tolong, coba alat ini online, ini berfungsi untuk kedua versi magento1.x dan magento2.x https://www.talktojobs.com/check-magento-version/
composer.json
mungkin mengandung batasan versi seperti "^ 2.1" yang tidak menunjukkan versi yang tepat, jadi Magento (juga) memeriksacomposer.lock
file untuk melihat versi apa yang saat ini diinstal.