0

私は困惑しています。基本的なものが欠けているに違いありません。どんなアイデアでも大歓迎です。

モデルとコントローラーで正常に動作する新しい Kohana プロジェクトをセットアップしました。この例では、ユーザー用の単一の非常に基本的なモデルと、内部に単一のインデックス アクションを持つ単一のコントローラーに戻しました。

KOstache について良いことを聞いたので、テンプレート エンジンとして KOstache を使用することにしました。モジュールとベンダー サブモジュールをダウンロードしましたが、問題なく動作しているようです。

View_User という名前のビュー モデル クラスの新しいインスタンスを作成しようとすると、kohana が * ErrorException [ Fatal Error ]: Class 'View_User' not found * をスローするときに問題が発生します。

私のディレクトリ構造は次のとおりです

application
   |_classes
   |     |_Controller
   |     |   |_User.php
   |     |_Model
   |     |   |_User.php
   |     |_view
   |         |_user.php
   |_templates
         |_user.mustache

プロジェクト内には他のフォルダーがありますが、これらは関連するものだと思います。

私のコントローラーは問題のあるクラスのようです

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_User extends Controller {

        public function action_index()
        {
                $renderer = Kostache_Layout::factory();
                $view = new View_User;
                $view->title = 'This is the test title';
                $this->response->body($renderer->render($view));
        }

}

これは機能せず、classes/view/user.php ファイルにクラス View_User がまだ見つからないという不平を言います 私は明らかに View_User クラスを持っています

<?php
class View_User {
}

これは、KOstache または Kohana のセットアップ方法に何らかの問題があると思いますが、何が間違っているのかわかりません。

classes/Controller/User.php の最後にクラス定義を含めると、すべてが期待どおりに機能し、別のファイル内でクラスが見つからないだけです。

私が読んだことから、オートローダーがクラス View_User をロードしようとすると、classes/view/user.php が表示されます

私は何を間違っていますか?

4

4 に答える 4

1

確かに、問題はフォルダとファイル名にあります。

Kohana v3.3 Doc より: 「クラス名の最初の文字は大文字で、単語を区切るためにアンダースコアを使用する必要があります。アンダースコアは、ファイル システム内のファイルの場所を直接反映するため、重要です。」

classes/view/user.php は classes/View/User.php になる必要があります

参考: http: //kohanaframework.org/3.3/guide/kohana/conventions#class-names-and-file-location

于 2014-07-08T19:14:00.143 に答える
0

私のフォルダとファイル名の大文字と小文字の問題であることがわかりました。

classes/view/user.php は

私がView_Userと名付けたクラスのclasses/View/User.php

これを変更すると、すべて期待どおりに機能します。

于 2013-04-27T20:03:25.403 に答える