안녕하세요!
다름이 아니라 자신의 모듈의 뷰나 컨트롤러 부분에 모델을 불러 올 때 getModel 함수를 부르는데 매번 부르기가 불편하더군요.
그래서 이 부분을 멤버 변수로 처리하면 어떨까해서 끄적여봅니다...
예)
모듈명 : editor
변경 전..
function ...() { $oEditorModel = getModel("editor"); ... } function ...() { $oEditorModel = getModel("editor"); $oEditorModel->...(); ... }
변경 후..
function init() //__construct() { $this->oModel = getModel($this->module); ... } function ...() { $this->oModel->...(); }
단지 코드 방식의 차이지만 가독성과 편리성이 좋더군요.
같은 모듈 내의 클래스라면 저렇게 불러오는 것도 괜찮죠. 단, 꼭 필요하지 않을 때도 항상 불러오도록 한다면 처리 속도가 느려질 수 있습니다. 파일 하나에 수천 줄의 소스가 들어 있는 모듈도 많거든요. 이럴 때는 __get() 매직 메소드를 활용하거나, oModel을 속성이 아닌 메소드로 만드는 것도 한 가지 방법입니다.
저는 그냥 getModel('module')->getModuleSrlByMid($mid); 이렇게 많이 씁니다. 한 번 쓰고 말 객체라면 별도의 변수에 할당할 필요도 없고, 여러 번 쓰더라도 어차피 코어에서 캐싱해 주니까요.