1

混乱しています。このトピックについて見つけたものはすべて読みましたが、うまくいきません。

preDispatchアクションを使用するためのプラグインを構築したいと考えています。

次のように名前を付けたいと思います。

class Mosaik_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract

ファイルのパスと名前:C:\wamp\www\mosaik\application\controllers\plugins\Acl.php

私は自分のクラスを登録しようとしましたapplication.ini:

resources.frontController.plugins.acl = "Mosaik_Controller_Plugin_Acl"

いくつかのエラーが発生します:

致命的なエラー: クラス 'Mosaik_Controller_Plugin_Acl' が C:\wamp\www\mosaik\library\Zend\Application\Resource\Frontcontroller.php の 117 行目に見つかりません

私の正確な質問は次のとおりです。この例では、私のapplication.iniに登録するにはどうすればよいですか。プラグイン クラスの名前は正しいですか、それとも変更する必要がありますか? (のように?)基本的な理解の問題であることはわかっていますが、何も役に立ちませんでした。

4

1 に答える 1

1

あなたの混乱は、主に自動読み込みと命名/名前空間が原因です。プラグインの名前が既存の名前空間と一致せず (少なくとも標準の ZF セットアップでは一致しない)、オートロードはこれをファイルと照合できません。したがって、クラスが見つかりません。

少なくともバージョン 1.9 以降の標準 ZF1 -> 30.3.2 モジュール リソース オートローダを参照してください。プラグインのリソース タイプ マッピングがあり、application/pluginsフォルダを作成してプラグインを追加できます。これはあなたにとってどのように見えるかです

C:\wamp\www\mosaik\application\plugins\Acl.php

// the new class name
class Application_Plugin_Acl extends Zend_Controller_Plugin_Abstract

// the new application.ini
resources.frontController.plugins.acl = "Application_Plugin_Acl"
于 2015-08-11T22:30:29.977 に答える