0

zend Frameworker で frontcontroller プラグインを使用すると、オートローダーの前に実行されるようです。どうすればいいですか?

私のapp.iniで

resources.frontController.plugins.routes = "Plugin_Routes"

plugins/Routes.php

class Plugin_Routes extends Zend_Controller_Plugin_Abstract {
}

エラーメッセージ..

致命的なエラー: クラス 'Plugin_Routes' が /usr/share/php/Zend/Application/Resource/Frontcontroller.php の 111 行目に見つかりません

インクルードパスがまったくありませんか?

4

4 に答える 4

1

そうですか?

plugins/Routes.php

ゼンドが期待する

Plugin/Routes.php

オートローダーはクラス名を使用して適切なフォルダーを見つけるためです。

My_Class_Something

次のようになります。

My/Class/Something.php
于 2010-12-04T01:59:48.343 に答える
1

何も機能しない場合は、オートローダーで遊んでみてください。

このコードをブートストラップ クラスに追加します。

protected function _initBlablablaPlugin(){

    $autoloader = Zend_Loader_Autoloader::getInstance();
    //If your plugin is placed in the /library/My/Plugin/Blablabla, then register the "My_" namespace
    $autoloader->registerNamespace('My_');

    $frontController = Zend_Controller_Front::getInstance();
    $frontController->registerPlugin(new My_Plugin_Authorize());
}
于 2012-01-31T18:53:44.987 に答える
1

私はかつて持っていた :

resources.frontController.plugins[] = "Dagho_Controller_Plugin_Auth"

そして、それは私のためにとても素敵に働いています

更新: 以下のこれらの行と doctrine autoloader だけを空想するものは何もありません

protected function _initAutoload() {
        $autoloader = new Zend_Application_Module_Autoloader(array(
                    'namespace' => 'Default',
                    'basePath' => dirname(__FILE__),
                ));

        return $autoloader;
    }
于 2010-12-04T10:42:37.603 に答える
0

マニュアルが間違っているか、少なくとも明確ではないようです:http: //framework.zend.com/manual/1.11/en/zend.controller.plugins.html

不足しているのは、アプリケーションの名前空間が必要なことです。そうでないと、1.11では機能しません。

app.ini

resources.frontController.plugins.routes = "Application_Plugin_Routes"

プラグイン

class Application_Plugin_Routes extends Zend_Controller_Plugin_Abstract { }

大丈夫です:)

于 2010-12-04T15:12:53.247 に答える