2011-01-02 10 views
2

コントローラのヘルパーが、一部のコントローラでpreDispatchメソッドを使用して同様の機能を持つようにしようとしました。Zendコントローラのアクションヘルパーの問題がヘルパーを追加できません

エラー:私が追加したブートストラップで

Fatal error: Class 'Helper_Action_Test' not found in /var/www/zend.dev/application/Bootstrap.php on line 9` 

アプリケーションのレイアウト

/Application 
/Helpers 
    **/Actions** this is where i will save the classes 
    /Views 
/modules 
/configs 
/layouts 
/Bootstrap.php 

protected function _initActionHelpers(){ 
    Zend_Controller_Action_HelperBroker::addHelper(new Helper_Action_Test()); 
} 

ヘルパーファイルで私が持っている:

class Helper_Action_Test extends Zend_Controller_Action_Helper_Abstract{ 

    public function preDispatch() { 
     echo 'Test'; 
    } 

} 

私はこれをブートストラップで実行すると、それはincludeや、addHelper()で新しいクラスをインスタンス化しようとしているところです。

include(APPLICATION_PATH.'/helpers/action/Test.php'); 
    Zend_Controller_Action_HelperBroker::addHelper(new Test()); 

答えて

0

私は思うヘルパーファイルのブートストラップファイルを含める必要があります。

または私はあなたがしたいと思う:require_once()それは

0

あなたの設定ファイルに以下の行を追加することにより、あなたが何をしたいの公式ZFドキュメントAutoloader

; Include path 
includePaths.library    = APPLICATION_PATH "/../library" 

; Autoloader Namespace 
autoloaderNamespaces[]    = 'Helper_' 

詳細情報を達成することができるようになりますあなたのブートストラップに)_initAutoload(確認して、あなたの問題を解決するために

+0

こんにちはジェフ、ご返信いただきありがとうございます。これで、ヘルパーフォルダをライブラリフォルダに置く必要がありますか? – snakeyyy

+0

この方法では、はい、あなたのヘルパーをライブラリフォルダに入れなければなりません。あなたのヘルパーを保存する方法を使用したい場合は、Zend_View_Helper_HelperNameクラスをZend_View_Helper_Abstractという名前にして、そのビューに$ this-> helperName()で呼び出せるHelperName()というパブリックメソッドを持っています。 –

+0

アクションのヘルパーですが、私はZend_Controller_Action_Helper_Abstractを拡張してすべてのアクションコントローラの内容を取得する必要があります。 – snakeyyy

0

最初の方法であり、また、あなたが接頭辞パスを追加したことを確認してください。

Zend_Controller_Action_HelperBroker::addPrefix('Helper_Action'); 

彼らはinclude_pathの上にない場合は、クラスへのパスを提供asloことができます。

Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/helper/action/', 'Helper_Action'); 
+0

こんにちはKenye、これを試して、まだエラーを取得して、クラスが見つかりません。また、メソッドを_initAutoloadメソッドの下に移動しました。 Helper_Action_Test()をどこからでもインスタンス化しようとすると、それでも見つからない...私が推測すると思ったとおりに動作しないパスを含める。他のアイデア? – snakeyyy

+0

あなたの環境を再現できるようにブートストラップと設定全体を投稿してください。 –

+0

ここにあります:http://pastebin.com/BTJvwQHPありがとうKenye! – snakeyyy

1

はこの1つ試してみてください。

// Action Helpers 
Zend_Controller_Action_HelperBroker::addPath(
    APPLICATION_PATH .'/controllers/helpers'); 
$hooks = Zend_Controller_Action_HelperBroker::getStaticHelper('Quote'); 
Zend_Controller_Action_HelperBroker::addHelper($hooks); 
関連する問題