마 젠토 2 : 모듈이 설치되어 있는지 확인하는 방법


18

Magento 2에서 런타임에 모듈이 설치되어 있는지 확인할 수 있습니까?

Magento 1에서는 isModuleEnabled도우미 메소드를 사용하거나 전역 구성 트리를 수동으로 가져 와서 아래 노드를 확인합니다 <modules/>.

isModuleEnabled젠토 2에 해당 하는 것이 있습니까? 그렇지 않다면 어떻게 전역 구성을 잡고 원하는 모듈 노드를 확인할 수 있습니까?

답변:


15

아마도 당신은 이것을 찾고 있습니까?

lib / internal / Magento / Framework / Module / Manager.php

/**
 * Whether a module is enabled in the configuration or not
 *
 * @param string $moduleName Fully-qualified module name
 * @return boolean
 */
public function isEnabled($moduleName)
{
    return $this->_moduleList->has($moduleName);
}

또한 같은 클래스에 isOutputEnabled 메소드가 있습니다. v. 2.2.0부터 사용 중단

사용 예 :

if (!$this->_moduleManager->isEnabled('Magento_Reports')) {

그래, 내가 찾던거야!
Alan Storm

3

composer를 사용하는 목적 중 하나는 종속성이 있는지 확인하거나 모듈이 설치되지 않도록하는 것입니다. 그러나이 "비활성화"출력 모드는 약간 이상하지만 "빠르게 깨졌습니다. 제대로 고칠 수있을 때까지 끄십시오"와 비슷합니다.

따라서 모듈 활성화 개념은 m2에서 동일하지 않습니다.

그렇게 말했지만, 나는 그러한 API가 있다고 확신하지만 @ API 주석으로 공개 / 지원되는 것으로 아직 표시되지 않을 수 있습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.