2012-01-06 11 views
2

私は自分のプラグインを作成しようとしていますが、今のところ私にとってはうまくいくものはありません。アプリケーションフォルダの下に私のプラグインディレクトリを持っていると仮定しましょう。 :私のプラグインのZend Frameworkプラグイン場所と名前

application/plugins/WhosOnline.php 

内容:

Class My_Plugin_WhosOnline extends Zend_Controller_Plugin_Abstract 

{ 
    public function preDispatch(Zend_Controller_Request_Abstract $request) { 

     echo 'I have reached the plugin'; 
      exit; 

    } 
} 

どのように正確に私はのapplication.iniファイルにこのプラグインを登録できますか?私が試してみました:

resources.frontController.plugins.whosonline = "My_Plugin_WhosOnline" 

を私も試してみました:

resources.frontController.plugins[] = "My_Plugin_WhosOnline" 

私はエラーを取得する:

Class 'My_Plugin_WhosOnline' not found 

は、どのように私はそれらのパスを一致させることができます?ディレクトリapplication/plugins/My/Plugin/を作成してWhosOnline.phpファイルをそこに置く必要がありますか? My_Pluginという名前空間を登録する必要がありますか?もしそうなら、どうしたらいいですか?助けてください!私はこの質問が以前に尋ねられたことを知っていますが、私はそれをもっと遅く私に説明する必要があります。

答えて

0

それでたくさん遊ん後、私は次のことをやってしまった、私は私のapplication.iniにこれらを追加しました:

autoloaderNamespaces[] = "MyPlugins_" 
resources.frontController.plugins.WhosOnline = "MyPlugins_WhosOnline" 

その後、私はその後、ライブラリフォルダ内MyPluginsと呼ばれるフォルダを作成し、私は、私のプラグインファイルを作成した内容でWhosOnline.phpと呼ば:

Class MyPlugins_WhosOnline extends Zend_Controller_Plugin_Abstract 
    { 
     public function preDispatch(Zend_Controller_Request_Abstract $request) { 

      echo 'I have reached the plugin'; 
      exit; 

     } 
    } 

は私が最終的にそれが働きました!

1

あなたが持っていることはちょうどあなたのapplication.ini

appnamespaceに以下を追加正しい=「マイ」プラグインがapplication/plugins/WhosOnline.phpに位置しています

2

場合は、Zendのアプリケーションのデフォルトのクラス名は次のようになりApplication_Plugin_WhosOnline

あなたのappnamespaceがApplication以外の場合、これはあなたのクラスのプレフィックスになります。

あなたはクラスがMy_Plugin_WhosOnlineと呼ばれるようにしたい場合は、Plugin(ないプラグイン)と呼ばれるサブフォルダとlibraryフォルダにMyと呼ばれるフォルダを作成し、そこにファイルを入れて、あなたのブートストラップにZend_Loader_Autoloader::getInstance()->registerNamespace('My_');を追加します。

関連する問題