Odpowiedzi:
Aż do wersji Magento 2.0.7 numer wersji był utrzymywany na AppInterface::VERSION
stałym poziomie.
Wraz z wydaniem Magento 2.1 stała została usunięta.
Tak więc do 2.0.7, jeśli zaznaczysz plik stopki adminhtml, w którym wyświetlana jest wersja
Miał odniesienie do \Magento\Framework\AppInterface::VERSION
stałej.
Ale od wydania Magento 2.1 plik stopki używa teraz tego, \Magento\Backend\Block\Page\Footer::getMagentoVersion()
co z kolei wywołuje \Magento\Framework\App\ProductMetadata::getVersion()
.
Wcześniej ProductMetadata::getVersion()
służyło do zwracania wartości stałej \Magento\Framework\AppInterface::VERSION
, ale teraz analizuje composer.json
zarówno, jak composer.lock
i zwraca odpowiednią wersję magento
Tak więc bez względu na to, którą wersję korzystasz z wersji 2.0.x lub 2.1.x, jeśli użyjesz tej \Magento\Framework\App\ProductMetadata::getVersion()
metody, zawsze otrzymasz odpowiednią wersję Magento.
Wniosek:
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
Możesz użyć tego w wersjach 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Dla wersji 2.1:
Sposób 1, przy użyciu DI:
public function __construct(
\Magento\Framework\App\ProductMetadataInterface $productMetadata
) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion()
{
return $this->productMetadata->getVersion();
}
Sposób 2, używając bezpośrednio ObjectManager:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Wspomniane rozwiązania nie mają zastosowania, począwszy od Magento 2.1 ( \Magento\Framework\AppInterface::VERSION
stała została usunięta)
Nowym sposobem uzyskania wersji jest pobranie jej z wystąpienia metadanych produktu (odczytuje wersję z pliku composer.json):
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
(lepiej wstrzyknąć metadane produktu do konstruktora jako \Magento\Framework\App\ProductMetadataInterface
)
Oprócz innych odpowiedzi możesz uzyskać wersję główną (na przykład 2.1), odwiedzając /magento_version
witrynę Magento 2.
Na wypadek, gdyby ktoś musiał go znaleźć ręcznie. Podstawowa wersja modułu Magento znajduje się w tym pliku kompozytora:
vendor/magento/magento2-base/composer.json
Również jak sugerowano powyżej, aby poniższy kod działał:
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
\Magento\Framework\App\ProductMetadata
teraz wymaga ComposerJsonFinder
przekazania instancji w momencie tworzenia instancji.
Przykład, który znalazłem w 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);
Powyższy kod służy wyłącznie celom informacyjnym. Musisz kopać więcej, aby działało.
Możesz uruchomić poniższe polecenie, aby uzyskać wersję magento:
php bin/magento --version
Dla użytkowników takich jak Unix
W tym celu nie trzeba pisać kodu PHP. Ponieważ Magento 2 wykorzystuje kompozytora, wszystko staje się łatwiejsze. Możesz to zrobić na dwa sposoby:
Sprawdź plik composer.json i poszukaj klucza o nazwie wersja. Jeśli jesteś podobny do mnie, który lubi korzystać z terminala, możesz zrobić coś takiego jak w katalogu głównym projektu.
composer licenses | grep Version:
Zwraca wersję M2, jeśli chcesz sprawdzić, czy jest to wersja społecznościowa czy korporacyjna, wykonaj następujące czynności:
composer licenses | grep Name:
po prostu sprawdź plik composer.json w katalogu głównym magento2, znajdziesz taki tekst
"version": "2.1.2",
composer.json
może zawierać ograniczenie wersji, takie jak „^ 2.1”, które nie wskazuje dokładnej wersji. Powinieneś sprawdzić composer.lock
plik, aby zobaczyć, jaka dokładnie wersja jest aktualnie zainstalowana.
Spróbuj tego:
<?php echo __('Magento'); ?>
<?php echo __('ver. %1', \Magento\Framework\AppInterface::VERSION) ?>
Dla wersji 2.1:
<?php
$productMetadata = new \Magento\Framework\App\ProductMetadata();
$version = $productMetadata->getVersion();
?>
<?php echo __('ver. %1', $version) ?>
Oto kilka sposobów sprawdzenia wersji Magento
Mage::getVersion() //will return the magento version
Sprawdź wersję Magento 2
Możesz użyć tego w wersjach 2.0.x:
echo \Magento\Framework\AppInterface::VERSION;
Dla wersji 2.1:
Pierwszy sposób przy użyciu DI:
public function __construct( \Magento\Framework\App\ProductMetadataInterface $productMetadata ) {
$this->productMetadata = $productMetadata;
}
public function getMagentoVersion() {
return $this->productMetadata->getVersion();
}
Drugi sposób, używając bezpośrednio ObjectManager:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface');
echo $productMetadata->getVersion();
Możesz uruchomić poniższe polecenie, aby uzyskać wersję Magento 2:
php bin/magento --version
Właściwie odkąd Magento 2 wykorzystało swojego kompozytora, więc nie trzeba do tego pisać kodu PHP. Zamiast tego istnieją dwie opcje znalezienia wersji Magento 2:
Najpierw wypróbuj composer.json i poszukaj słowa kluczowego wersji. Jeśli wolisz używać terminala, możesz dodać coś w katalogu głównym projektu.
composer licenses | grep Version:
Innym sposobem sprawdzenia pogody w wersji Magento 2 jest wersja społecznościowa lub korporacyjna, napisz następujące
composer licenses | grep Name:
Skorzystaj z usługi internetowej, aby sprawdzić https://www.mageplaza.com/check-magento-version/
Pls wypróbuj to narzędzie online, działa dla obu wersji magento1.x i magento2.x https://www.talktojobs.com/check-magento-version/
composer.json
może zawierać ograniczenie wersji, takie jak „^ 2.1”, które nie wskazuje dokładnej wersji, więc Magento (także) sprawdzacomposer.lock
plik, aby zobaczyć, która wersja jest aktualnie zainstalowana.