Zend framework 包括带有ZendFramework库的模块

Zend framework 包括带有ZendFramework库的模块,zend-framework,zend-framework-modules,Zend Framework,Zend Framework Modules,我想为我公司的ZendFramework和Doctrine安装一个分析器。现在,我在底部有一个栏,在开发环境中显示,它提供了一些基本的计时和查询计数(很像Symfony profiler栏)。我想做的是将所有这些信息和更多信息存储在SQLite数据库中,并允许在Symfony允许的探查器中查看这些信息 有没有一种方法可以让我在公司的库中包含一个模块,该分析器的所有代码都可以放在这个模块中?理想情况下,我希望它的设置使开发人员可以键入“domainname.com/CompanyProfiler”

我想为我公司的ZendFramework和Doctrine安装一个分析器。现在,我在底部有一个栏,在开发环境中显示,它提供了一些基本的计时和查询计数(很像Symfony profiler栏)。我想做的是将所有这些信息和更多信息存储在SQLite数据库中,并允许在Symfony允许的探查器中查看这些信息

有没有一种方法可以让我在公司的库中包含一个模块,该分析器的所有代码都可以放在这个模块中?理想情况下,我希望它的设置使开发人员可以键入“domainname.com/CompanyProfiler”,并向他们显示全屏分析器。目前看来,我还没有办法在没有新模块的情况下实现这种路由

编辑:在看到关于setControllerDirectory的答案后,我查看了front controller方法并找到了addModuleDirectory,这听起来正是我需要的。但我不能让它工作

$frontController->addModuleDirectory(APPLICATION_PATH . '/../library/Company/modules');
如果在此之后执行getControllerDirectory,我会看到:

'profiler' => '{really long correct path}../library/Company/modules\profiler\controllers'
在“controllers”文件夹中,我有一个类名为IndexController.php的文件:

class Profiler_IndexController extends Zend_Controller_Action
但是如果我尝试转到URL“/分析器”,我会得到一个控制器未找到错误。有没有想过我做错了什么


如果我将错误转储到我的错误控制器中,我可以看到它显然正在尝试访问默认模块。

如果我理解正确,您还想将控制器放在库中吗?如果是这样,您可以使用设置ZF查找所有控制器都在库中(或任何其他位置)的CompanyProfiler模块。

如果我理解正确,您还希望控制器在库中吗?如果是这样,您可以使用设置ZF查找所有控制器都在库中(或任何其他位置)的CompanyProfiler模块。

尝试通过在引导中放置以下内容向模块添加直接路由:

protected function _initRoutes()
{
    $router = Zend_Controller_Front::getInstance()->getRouter();

    // Route for profiler
    $route = new Zend_Controller_Router_Route(
        'profiler/:controller/:action/*',
        array(
            'module'     => 'profiler',
            'controller' => 'index',
            'action'     => 'index'
        )
    );
    $router->addRoute('profiler', $route);
}

通过在引导中放置以下内容,尝试向模块添加直接路由:

protected function _initRoutes()
{
    $router = Zend_Controller_Front::getInstance()->getRouter();

    // Route for profiler
    $route = new Zend_Controller_Router_Route(
        'profiler/:controller/:action/*',
        array(
            'module'     => 'profiler',
            'controller' => 'index',
            'action'     => 'index'
        )
    );
    $router->addRoute('profiler', $route);
}