2011-10-31 6 views
2

私は立ち往生し、次のエラーを修正するための解決策を探しています:私は新しいプラグインを登録しようとしているZendのブートストラップ新しいプラグイン=致命的なエラー

Fatal error: Class 'Plugin_AccessCheck' not found in /.../application/Bootstrap.php on line 18

。私のコードは次のとおりです。

protected function _initAutoLoad() 
{ 
    $modelLoader = new Zend_Application_Module_Autoloader(array(
          'namespace' => '', 
          'basePath' => APPLICATION_PATH));   

    $acl = new Application_Model_LibraryAcl(); 
    $auth = Zend_Auth::getInstance(); 

    $frontcontroller = Zend_Controller_Front::getInstance(); 
    $frontcontroller->registerPlugin(new Plugin_AccessCheck($acl, $auth)); 

    return $modelLoader; 
} 

(これはZF 1.11である)

答えて

1

は、次の要件を満たす必要がある、あなたが何をしようとして達成するために(すべての名前とパスが敏感ケースです)。 ..

  1. Plugin_AccessCheckという名前のクラスがどこかにあなたのプロジェクト
  2. であり、このクラスはinclude_path(アプリ上にあるファイルに存在libraryディレクトリなど)相対パスでPlugin/AccessCheck.php
  3. オートローダーには、プレフィックスPluginで始まるクラスが自動ロードされることが通知されています。たとえば、あなたのapplication.ini設定ファイル

    autoloadernamespaces[] = "Plugin_" 
    

に私はここに最も抵抗の少ないパスを取っているが、これを達成するための他の方法があります。

これは、メソッド内にある場合は、そのようなフロントコントローラをフェッチしないでください。これを代わりに使用

protected function _initPlugins() 
{ 
    $this->bootstrap('FrontController'); 
    $frontcontroller = $this->getResource('FrontController'); 

    // and the rest 
+0

ありがとうございました!私はそれを見てみましょう。 namespacerのために、私のクラスに穴の機能を入れる方が良いかもしれない、私はポストを更新しました。 – directory

関連する問題