2012-02-07 1 views
-1

는 page.php (예 컨트롤러 페이지) (http://page/view/

class page extends fwcontroller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 

    } 

    public function view() 
    {  
     $this->load->library("uri"); #DOESN'T WORK 
     var_dump($this->load->library("uri")); #DOESN'T WORK 
    } 
} 

fwcontroller.php (컨트롤러 후크 열 수 있습니다 그것은, 내가 다른 폴더에 이동 wan't!)

class fwcontroller extends core 
{ 
    public $load; 

    public function __construct() 
    { 
     $this->load = new loader; 

     var_dump($this->load->library("uri")); #OK 

    } 
} 

loader.php (로더 라이브러리 (이 /fw/loader.php에있어)) /fw/fwcontroller.php에, 난 '완 t move 다른 폴더에!)

class function loader 
{ 
    public function library($url) 
    { 
     return $url; 
    } 
} 

내가 $this->load->library("uri")를 통해 페이지 컨트롤러의 인스턴스를로드하고 그것을 돌려 wan't은 "확인"입니다. 그러나 "$ this-> loader = new loader"와 같은 인스턴스가 있지만 fwcontroller.php가 아닌 page.php에서만 작동합니다.

답변

0

첫 번째 오류보고 기능을 활성화하십시오. 귀하의 구문은 벗어났습니다.

public function page extends fwcontroller 

은 다음과 같아야합니다

class page extends fwcontroller 

그리고

public fwcontroller extends core 

은 다음과 같아야합니다

class fwcontroller extends core 

그리고

public function loader 

은 다음과 같아야합니다

public function __construct(loader $loader) // or even better create a interface 
{ 
    $this->load = $loader; // dependency injection is always better for among other thing testability 

    var_dump($this->load->library("uri")); #OK 

} 

편집

어떻게 당신은 페이지 클래스의 인스턴스를 만들려면 어떻게해야합니까 :

class loader 

또 다른 것은, 그것은 어떻게하는 것이 좋습니다?

내 생각에 다음과 같이하십시오 : $instance = new page; : $instance = new page();. 왜냐하면 it just works입니다.

+0

미안하지만 내 팁 퍼터입니다. 그것은 수업입니다. Ok –

+0

'class function loader'? –

+0

@JonathanKuhn 어디서? ;) 좋아, 그 하나 놓친 :) – PeeHaa

0
class /* NOT public function */ page extends fwcontroller 
{ 
    public function __construct() { 
     parent::__construct(); 
    } 

    public function view() 
    {  
     $this->load->library("uri"); // should work now 
     var_dump($this->load->library("uri")); // should work now 
    } 
} 

(수정 다른 미스 유형!) 자동 로딩 기능

및 사용 네임 스페이스 (+ 의존성 주입 : P).

+0

이 클래스에서는 $ load를 공용으로 설정하지만 "$ this-> load-> library ("uri ");"는 공용 fwcontroller에서만 코어 (다른 폴더)를 확장합니다. –

관련 문제