질문 Q #18714
ci에서 instance와 static의 의미는... ?
호짱 2017-09-14 12:02:15

ci에 라이브러리를 만들어 사용할 때 메서드나 변수를 static으로 사용하는 것과 아닌경우에 차이가 있을까요?

core파일을 확인하다 보니, 사용할 라이브러리를 load메서드로 불러올 때 인스턴스를 생성하고,

$CI객체 하위객체로 포함해서 하나의 인스턴스로 사용하는거 같은데요.

이러면 인스턴스의 의미가 없지 않을까요?

 

문득 메서드를 실행할 때나 class 변수를 불러올 때 너무 길다라는 생각이 들었는데요.

그러다보니 로드되는 동시에 인스턴스를 생성해서 하나의 인스턴스로만 사용할거 같으면

static과 차별성이 없는 것 같고, static으로 사용하면 코드가 깔끔할거 같아 질문해봅니다.

$this->someLib->some_method(); // 일반적 사용
someLib::some_method(); // static
답변 3
#1 변종원(웅파) 2017-09-14 15:33:55

뭐라고 해야할까요? php4 시절 oop를 강제(?)로 구현했던 방식이라고 할까요?

모던php, ci4에서는 말씀하신 방향으로 가고 있습니다.

#2 한대승(불의회상) 2017-09-14 16:26:07

class 파일을 include 하시고 그렇게 사용하셔도 됩니다. ^^

ci의 $this->load 를 사용하시면 변수에 인스턴스를 생성하니 큰 의미가 없습니다.

#3 호짱 2017-09-15 00:51:31

네 사용하는 클래스들을 거의 다 로드해놓고 쓰다보니 이런 의문에 들더군요...

이럴거면 그냥 static...? ㅋ 습관이 제가 사용하는 방식이 문제가 있는거 같기도 해요...^^;