0

我有一个 Zend 前端控制器插件。它依赖于请求对象和服务层,但它不能跨应用程序重用。因此,我认为它属于应用程序控制器目录中的插件目录。这听起来对吗?

其次,我怎样才能让 Zend 自动加载这个目录中的插件?

谢谢!

4

1 回答 1

1

我同意插件应该放在插件文件夹中。我通常在引导期间使用我的应用程序的自定义命名空间设置资源自动加载器的实例。例如,假设您的应用的命名空间是“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 回答