2009-08-20 6 views
0

私はプロジェクトの新しいベースコントローラを遡及的に作成しようとすると少し混乱しています。その後、Kohanaでテンプレートコントローラを拡張する

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

、代わりにTemplate_ControllerbaseControllerを拡張するために、私の他のコントローラを書き換える:

class Frontpage_Controller extends Template_Controller 
私は間違っていない場合は、私がする必要があるすべては、 MY_baseController.phpは、以下を含むと呼ばれる application/librariesでファイルを作成していますしかし

class Frontpage_Controller extends baseController 

から

私はこれを行う、ということFrontpage_Controllerアラートに私にアクセス:

クラスのbaseController 'が見つかりません...

は、私はここで何をしないのですか?

答えて

2

いくつかのあいた後、私はapplication/librariesからとapplication/controllersに移動MY_baseController.php

...次は私の解決策だと思います。 base.phpに名前を変更し、次の行を変更します。あなたのフロントページコントローラ内今

class Base_Controller extends Template_Controller 

class baseController extends Template_Controller 

を、代わりにbaseControllerBase_Controllerを拡張します。

+1

「抽象クラスBase_Controller extends Template_Controller」を抽象化することも検討してください。これにより、誤ってhttp://example.com/myapp/base経由でレンダリングするのを防ぐことができます。 – Chadwick

0

すべての自動ロードが正しく行われるようにKohana Conventionsに従ってください。モデルヘルパーとライブラリに関しても同様のものがあります。

また、メインのアプリケーションコントローラフォルダをきれいに保ちたい場合は、アプリケーション用のKohanaモジュールを作成し、テンプレートとその他の拡張コントローラをすべてメインコントローラから分離しておくことをお勧めします。

あなたの設定ファイルにモジュールを追加することを忘れないでください!

0

私はこれが古い質問であることを知っていますが、私は言葉を入れたいと思っていました。システムフォルダー内の_Coreで拡張されたクラスを拡張するときに必要なので、ファイル名からMY_接頭辞を削除するだけで済みます。例えば、

class Controller extends Controller_Core 

のためのファイルがMY_Controller.phpという名前になります。

この場合、ファイルbaseController.phpの名前を付けてライブラリフォルダに入れるだけで動作します。

0

犯行はありませんが、私はKohana 3.1で作業するために自分の頭を叩く必要がありました。テンプレートコントローラを拡張する構文は、次のようになるはずです。

class Controller_Base extends Controller_Template 
関連する問題