0

Zend フロント コントローラー プラグインがあります。リクエスト オブジェクトとサービス レイヤーに依存しますが、アプリケーション間で再利用することはできません。したがって、アプリケーションのコントローラ ディレクトリ内の Plugins ディレクトリに属していると思います。これは正しいと思いますか?

次に、Zend にこのディレクトリのプラグインを自動ロードさせるにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

プラグインはpluginsフォルダーに入れるべきだということに同意します。私は通常、アプリのカスタム名前空間を使用して、ブートストラップ中にリソースオートローダーのインスタンスをセットアップします。たとえば、アプリの名前空間が「Bob」だったとします。

protected function _initAutoloader()
{
    $autoloader = Zend_Loader_Autoloader::getInstance();

    $resourceAutoloader = new Zend_Loader_Autoloader_Resource(array(
        'basePath' => APPLICATION_PATH,
        'namespace' => 'Bob',
        'resourceTypes' => array(
            'model' => array(
                'path' => 'models/',
                'namespace' => 'Model'
            ),
            'form' => array(
                'path' => 'forms/',
                'namespace' => 'Form'
            ),
            'plugin' => array(
                'path' => 'plugins/',
                'namespace' => 'Plugin'
            ),
            'service' => array(
                'path' => 'services/',
                'namespace' => 'Service'
            )
        )
    ));
    $autoloader->pushAutoloader($resourceAutoloader);

    return $autoloader;
}

必要に応じて、リソースタイプを追加または削除します。その後、プラグインをapplication / plugins / Whatever.phpに配置すると、通常どおり自動ロードされます。

于 2012-12-10T13:49:16.080 に答える