2013-08-31 2 views
2

는 어떻게 팩토리 클래스는 CodeIgniter의에서 전화를 사용합니까. 나는 도서관으로 다음 구현하기 위해 노력하고있는 한 내가 자궁강 데이터코드 명 사용 방법 공장 패턴?

foreach($res as $Factory){ 

$Factory->method_factory(); 
} 

에 루프을 가정 해 봅시다하지만

+1

무슨 일이 기대합니까? 내가 Laravel을 사용하고 정말 CodeIgniter를 사용하지 않았지만 시간 동안 –

답변

0

나는 공장에 인스턴스를하지 않는 것보다

class MyClass { 

    public $_class = "Factory"; 

    /* 
     =================================== 
     On Create 
     =================================== */ 

    public function __construct() { 

     $this->_db =& get_instance(); 

} 
    //other methods 
} 

class Factory { 

    private $_db; 
    /* 
     =================================== 
     On Create 
     =================================== */ 

    public function __construct($data, $db) { 
     $this->_db = $db; 
} 
//factory methods 
} 

$obj = new MyClass(); 
$res = $obj->call_method_MyClass(); 

기본적으로 사용자 안내서에 설명되어있는 일반적인 라이브러리 패턴을 따르십시오. 원하는대로 작동합니다.

class Factory { 
    function __construct() { 
    $this->CI =& get_instance(); 
    } 

    function get_factory_item() { 
    return $factory_item; 
    } 
} 
(이 장전 된 경우)

그런 다음 컨트롤러에서 당신은 단지 그것을 호출 할 수 있습니다 :

$this->factory->get_factory_item(); 

을 라이브러리를 형성 모델 또는 CodeIgniter의 물건을 호출해야하는 경우는 다음과 같습니다

$this->CI->My_model->get_something($parameter); 

을 다음 그것을 컨트롤러로 돌려 보낼 수 있습니다. 도서관 (또는 당신이 말할 수있는 공장)을 사용하여 내 모든 무거운 짐을 다하는 것을 선호합니다.

예를 들어, 내 모델은 데이터 객체를 반환하기 만하면 내 라이브러리는 num_rows() 등을 확인하고 finally (result) 객체 또는 부울 거짓을 내 컨트롤러로 반환합니다.

그럼 내 컨트롤러는 경우 ($의 my_object)와 같은 간단한 검사를 할 수있는 그래서 좋고 깨끗합니다.

희망이 도움이됩니다. 위의 코드를 실행하면

+0

유 설명 어떤 의미를 만들 것 – fefe