답변:
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 버전을 얻게됩니다.
결론:
마 젠토 1 :
Mage::getVersion() //will return the magento version
마 젠토 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의 경우 :
DI를 사용하는 방법 1 :
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
상수는 제거됨)
버전을 얻는 새로운 방법은 Product Metadata Instance (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);
위의 코드는 순전히 정보를 제공하기위한 것입니다. 제대로 작동하려면 더 파고 들어야합니다.
유닉스 같은 사용자
이를 위해 PHP 코드를 작성할 필요가 없습니다. Magento 2는 작곡가를 사용하기 때문에 더 편합니다. 이 두 가지 방법으로 할 수 있습니다.
composer.json을 확인하고 version이라는 키를 찾으십시오. 터미널을 좋아하는 나와 같은 사람이라면 프로젝트의 루트와 같은 것을 할 수 있습니다.
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) ?>
마 젠토 버전을 확인하는 방법은 다음과 같습니다.
Mage::getVersion() //will return the magento version
마 젠토 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을 시도하고 version 키워드를 찾으십시오. 터미널 사용을 선호하는 경우 프로젝트 루트에 무언가를 추가 할 수 있습니다.
composer licenses | grep Version:
Magento 2 버전의 날씨를 확인하는 또 다른 방법은 커뮤니티 또는 엔터프라이즈 버전입니다.
composer licenses | grep Name:
웹 서비스를 사용하여 https://www.mageplaza.com/check-magento-version/ 을 확인 하십시오.
Pls는이 도구를 온라인으로 사용해보십시오 .magento1.x 및 magento2.x 버전 모두에서 작동합니다 https://www.talktojobs.com/check-magento-version/
composer.json
는 정확한 버전을 나타내지 않는 "^ 2.1"과 같은 버전 제약 조건을 포함 할 수 있으므로 Magentocomposer.lock
는 현재 설치된 정확한 버전을 확인하기 위해 파일을 검사합니다 .