Как включить мои модули в Zend Framework? - PullRequest
4 голосов
/ 04 ноября 2010

Я создал модуль (персона) в моем Zend Project. Затем создал контроллер (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 ]

11 голосов
/ 04 ноября 2010

Попробуйте сделать следующее:
1) application.ini

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

2) Создать Bootstrap в каждом модуле:

class Person_Bootstrap extends Zend_Application_Module_Bootstrap {
}
2 голосов
/ 04 ноября 2010

Код для этого в вашей 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)«)

2 голосов
/ 04 ноября 2010

Я думаю, что вы можете просто добавить конфигурацию модуля ниже в ваше приложение.

0 голосов
/ 17 апреля 2012

Я не знаю почему, но мне нужно было просто добавить строку ниже только для того, чтобы она работала правильно:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...