모듈을 개발하다가 Member Model에 있는 getMemberInfoByMemberSrl 함수를 사용하게 되었습니다
기존에 짜여진 코드를 보던중 해당 함수가 public static 으로 선언되어있는것을 보고 해당 model에서 사용방법을 보니 아래와 같이 사용하더라고요
self::getMemberInfoByMemberSrl
nCenterlite 모듈도 보니 아래와 같이 사용하고요
MemberModel::getMemberInfoByMemberSrl
그런데 타운에서 검색한 해당 함수를 사용하는 모습을 보면 아래와 같이 사용하더라고요
$oMemberModel = getModel('member');
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
static 함수가 아닌 일반 class에 종속되는 함수처럼 $oMemberModel-> 로 사용하는데 아무거로나 사용해도 괜찮은건가요?
굳이 인스턴스 속성을 참조할 필요 없는 메소드들은
호출하는 쪽의 편의를 위해 라이믹스 2.0에서 static으로 대거 전환되었습니다.
getModel(...)로 불러서 쓰는 코드는 대부분 그 전에 만들어진 것입니다.
(더 오래된 코드라면 getModel 앞에 &까지 붙이는 흠좀무한 모습을 볼 수 있습니다.)
PHP에서는 static이 아닌 것을 ::으로 호출하면 에러가 나지만
static으로 선언된 것을 ->로 호출하는 것은 상관없습니다. 따라서 기존 방식의 코드도 잘 작동합니다.
길고, 지저분하고, 불필요한 인스턴스를 불필요한 변수에 할당하는 낭비가 발생할 뿐이지요.