如何在Zend Framework中启用我的模块?

时间:2010-11-04 13:57:33

标签: php zend-framework module

我在Zend Project中创建了一个模块(person)。然后在该模块中创建了一个控制器(PersonController.php)。然后在该控制器中创建了一个动作(addAction)。但是当我使用http://myproject.dev/person/person/add时,它什么都没有显示。

http://myproject.dev/指向我的zendproject的公共文件夹,因此当我使用http://myproject.dev/时,它成功地向我显示了索引页面。但它不适用于我的模块。

我已经看到某个地方我们必须配置 application.ini Bootstrap.php 告诉zend我们的模块目录,但我不知道如何。这些陈述是什么?

我当前的目录是这样的:

zendproject|
           |-> application 
                          |-> models
                          |-> modules
                                     |-> person
                                               |->controllers
                                                              |-> PersonController.php 

4 个答案:

答案 0 :(得分:11)

尝试做下一件事:
1)application.ini

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""

2)在每个模块中创建Bootstrap:

class Person_Bootstrap extends Zend_Application_Module_Bootstrap {
}

答案 1 :(得分:2)

我认为您只需在application.ini上添加模块配置

即可
resources.modules[] =

就是这样。

答案 2 :(得分:2)

在Bootstrap中执行此操作的代码方式如下:

$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->returnResponse(true);
$frontController->setControllerDirectory(
            array(
                'default' => '/path/to/application/controllers',
                'person' => 'path/to/application/person/controllers'
            )
        );
$response = $frontController->dispatch();
$response->sendResponse();

请参阅http://framework.zend.com/manual/en/zend.controller.front.html(特别是查找子标题'setControllerDirectory()和addControllerDirectory')

答案 3 :(得分:0)

我不知道为什么,但我只需要添加下面的行只是为了让它正常工作:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"