모듈 개발 tip

다른 모듈에서 특정 모듈이 설치되어 있는지 확인하는 방법

수표 2020. 10. 29. 14:12
<?php

if(getClass('test') === NULL){
  // test 모듈/애드온이 존재하지 않을경우
}

 

getModel('document') → 오브젝트 반환
getModel('comment') → 오브젝트 반환
getModel('jgsdvfsiyhfhf') → NULL 반환

// 기진곰님 답변
// https://xetown.com/questions/1452965

예를들어 존재하는 모듈인 document, comment 모듈을 체크하면 클래스 오브젝트를 반환하지만, jgsdvfsiyhfhf 같이 존재하지 않는 모듈을 가져오면 NULL을 반환하게 된다.

 

물론 addon 모듈처럼 Model 클래스를 정의하지 않는 경우도 있으니

getModel보다는 getClass로 체크하는 것이 더 확실하지만,

실제로 사용하는 것이 Model 클래스라면 그걸 직접 확인한다고 문제가 되지는 않는다.

 

라이믹스나 비교적 최근 버전의 XE라면 클래스 오토로딩이 적용되어 있으니

그냥 if(class_exists('TestModel')) 로 체크해도 문제가 없다.