2011-07-19 13 views
2

私はZend_Controller_Actionのクラス拡張を作成し、いくつかのユーザー定義メソッドを追加しました。これはどのコントローラからでもアクセスされます。Zend ToolによってZend_Controller_Actionが拡張されないクラス

Zendツールを使用して新しいアクションを作成するまで、すべてのことがうまくいきます。今回は、Zendツールで拡張クラスが見つかりません。

エラーメッセージ:

Fatal error: Class 'CMS_Zend_Controller_Action' not found in....

Zend_Controller_ActionindexControllerのような他のコントローラによって拡張1を拡張するクラスです。

クラスを発見可能にする方法。私のクラスのように、それぞれのフォルダを含める必要がありますか? zendはそれをしますか?私はそうは思わない。それはどうですか?

+0

あなたのアプリケーションでは、CMS_Zend_Controller_Actionはどこにありますか?クラス名に「Zend」を含めることをお勧めします。規約には、それに加えて、「Zend」という単語の代わりに独自の名前空間を使用することもあります。だからあなたはCMS_Controller_Actionを代わりに使うでしょう。 –

+0

@Tim Fountain、私はZend_Controller_Actionを拡張していますので、同様にそのことを示すことをお勧めしました。また、私も自分自身のCMS_Controller_Actionを持っているので – Starx

+0

ただ確認:Windows上でNetbeans + Zend Framework Supportを使ってこれを複製することができました。デバッグ中にZend_Toolはアプリケーションのブートストラップメカニズムを使用していないことを認識しました。 @madflow、正確には – madflow

答えて

0

シンプルです。 :-pあなたのコアコントローラを見つけることができたら、拡張コントローラへのパスを含めるだけです。あなたのindex.phpで

http://php.net/manual/en/function.set-include-path.php

set_include_path(path_to_your_extended_classes)、ルートファイル別名。

+0

私はこれについて私の質問でも言及しています。このオプションは非常に限定されています。私は必要なすべてのフォルダを含める必要があります。このようにしなければならない場合は、フォルダ内のすべてのフォルダを含めることができる方法があるかどうかを知りたいと思います。ところで、Zend framewookは何をするのですか、すべてのライブラリフォルダをset_include_pathします。 – Starx

+0

@Starxそれは再帰的にフォルダを見ます。 '' a/'には' a/b'、 'a/b/c'、' a/d'なども含まれます。それは数分もかかりません。 – FinalForm

+0

この場合、すでに 'set_include_path(implode(PATH_SEPARATOR、array( realpath(APPLICATION_PATH。 '/ ..)が含まれています。/ライブラリ ')、 get_include_path()、 )))); 'CMSとZendを含むすべてのライブラリがこのフォルダ内に含まれています – Starx

0

ここであなたがしようとしているのは、Zend_Toolのことではないと思います。

質問とセットアップを理解している限り、あなたのライブラリにクラスを作成しました。もちろん、自分のライブラリ/ライブラリの中で自分のクラスをたくさん使ってZend_Controller_Actionを拡張することもできます(私もそうします)。そのようなクラスにアクションを追加するのは、珍しいかもしれませんが、特定の理由でZend_Toolの問題です。

Zend_Tool私は/applicationのようなよく知られている構造についてのみ考えていて、内側にあるものは/modulesと考えています。コントローラクラスを作成した場合、Zend_Toolは/applicationまたは/modulesフォルダに必要なフォルダ構造を追加するような作業を行います。ビューファイルを必要とするアクションメソッドと同じです。あなたのライブラリにコントローラクラスを持たせることは、それをすべて必要とせず、したがってZend_Toolを構築しません。私はあなたのライブラリで作成するクラスは、Zend_Toolではサポートされていないと思います。

関連する問題