2009-08-20 7 views
0

내 프로젝트의 새 기본 컨트롤러를 소급하여 만들려고 혼란을 겪고 있습니다. 다음Kohana의 템플릿 컨트롤러 확장

class baseController extends Template_Controller 
{ 
    public function __construct() 
    { 
    parent::__construct(); 
    } 
} 

그리고 내 다른 컨트롤러를 다시 작성을 Template_Controller 대신 baseController을 확장 :

class Frontpage_Controller extends Template_Controller 
내가 잘못 아니에요, 난이 할 필요가 application/libraries에서 파일을 만드는 것입니다이 (가) 다음을 포함 MY_baseController.php라고

class Frontpage_Controller extends baseController 

그러나 나는 그 Frontpage_Controller 경고 나에게 접근,이 작업을 수행 할 때 :

클래스 'baseController'을 (를) 찾을 수 없습니다 ...

내가 무슨 말이냐?

답변

2

일부 손보는 후, 나는 application/libraries에서와 application/controllers로 이동 MY_baseController.php

... 다음 내 솔루션입니다 생각합니다. base.php로 이름을 바꾸고 다음 줄을 변경 :

class baseController extends Template_Controller 

당신의 FrontPage를 컨트롤러에서 이제

class Base_Controller extends Template_Controller 

로를, Base_Controller 대신 baseController 확장 할 수 있습니다.

+1

"추상 클래스 Base_Controller는 Template_Controller를 확장합니다." 이렇게하면 우연한 시도가 http://example.com/myapp/base를 통해 렌더링되지 않습니다. – Chadwick

0

Kohana 대회를 준수하여 모든 것이 올바르게 자동로드되도록하십시오! 모델 도우미 및 라이브러리와 관련하여 비슷한 것들이 있습니다.

또한 메인 애플리케이션 컨트롤러 폴더를 깨끗하게 유지하려면 애플리케이션 용 Kohana 모듈을 만들고 모든 템플릿과 기타 확장 컨트롤러를 기본 컨트롤러와 분리하여 보관할 것을 권장합니다.

모듈을 설정 파일에 추가하는 것을 잊지 마세요!

0

나는 이것이 오래된 질문이라는 것을 알고 있지만 나는 한 마디로 생각했다. 시스템 폴더에서 _Core 접미사가 붙은 클래스를 확장 할 때 정말로 필요하기 때문에 파일 이름에서 MY_ 접두어 만 제거하면됩니다. 예를 들어,

class Controller extends Controller_Core 

의 파일은 MY_Controller.php을 이름을 지정해야합니다.

이 경우 baseController.php 파일의 이름을 지정하고 라이브러리 폴더에 저장하면됩니다.

0

불쾌감은 없지만 Kohana 3.1에서 작동하려면 컴퓨터에서 머리를 숙일 필요가있었습니다. 마지막으로 Template Controller를 확장하는 구문은 다음과 같아야합니다.

class Controller_Base extends Controller_Template