2012-07-27 40 views
1

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

有没有一种方法可以让我在公司的库中包含一个模块,在该库中可以使用该分析器的所有代码?理想情况下,我希望安装它,以便开发人员可以键入“domainname.com/CompanyProfiler”,并向他们展示全屏分析器。目前似乎没有一种方法可以让我在没有新模块的情况下进行布线。

编辑:看到关于setControllerDirectory的答案后,我看着前端控制器方法,并找到addModuleDirectory,这听起来像我需要的。但我无法让它工作。

$frontController->addModuleDirectory(APPLICATION_PATH . '/../library/Company/modules'); 

如果我以后做一个getControllerDirectory,我看到:

'profiler' => '{really long correct path}../library/Company/modules\profiler\controllers' 

在 “控制器” 文件夹中,我有IndexController.php与类名:

class Profiler_IndexController extends Zend_Controller_Action 

但是,如果我尝试去URL“/ profiler”,我得到一个控制器未找到错误。任何想法我做错了什么?

如果我var_dump错误控制器中的错误,我可以看到它显然试图访问默认模块。

回答

0

尝试通过放置在你的引导下增加了模块的直接路线:

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); 
} 
1

如果我理解正确,你还想在库中有控制器?如果是这样,您可以设置ZF使用setControllerDirectory()查找所有控制器在库(或其他地方)中的CompanyProfiler模块。