Изменить Zend Framework Модуль по умолчанию

Я работаю над проектом и имею следующий макет проекта:

|Project
    |-Application
        |-api
        |-configs
        |-controllers
        |-models
        |-modules
            |-core
                |-controllers
                |-models
                |-views
                |-Bootstrap.php
            |-site1
            |-site2
            |-site3
        |-views
        |-Bootstrap.php
    |-Docs
    |-Library
    |-Public
    |-.zfproject.xml

Я использовал это в моем application.ini, чтобы попытаться установить default модуль быть core модуль:

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

resources.frontController.defaultModule = "core"
resources.frontController.defaultControllerName = "Index"
resources.frontController.defaultAction = "index"

resources.modules[] = ""

Моя проблема в том, что по какой-то причине я не могу заставить загрузочные модули работать в модулях. Почти так же, как если бы модуль по умолчанию не изменялся. Приложение ведет себя так, как есть, пока я не пытаюсь загрузить загрузчики - я получаю эту ошибку:

Неустранимая ошибка: необработанное исключение "Zend_Application_Resource_Exception" с сообщением "Найден файл начальной загрузки для модуля"default", но класс начальной загрузки"Default_Bootstrap"не найден" в M:\Zend_Framework\library\Zend\Application\Resource\Modules.php в строке 85

Префикс этой ошибки:

Zend_Application_Resource_Exception: файл начальной загрузки найден для модуля "default", но класс начальной загрузки "Default_Bootstrap" не найден в M:\Zend_Framework\library\Zend\Application\Resource\Modules.php в строке 85

Кто-нибудь может увидеть, где я иду не так?

Мое приложение /Bootstrap.php файл:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}

Файл моего приложения /Core/Bootstrap.php:

class Core_Bootstrap extends Zend_Application_Module_Bootstrap 
{   
}

2 ответа

Решение

Не 100% на это, но если вы удалите следующую строку:

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

это может решить проблему. Если я не ошибаюсь, так как вы используете модули, установка этого приведет к ошибке.

Похоже, вам не хватает одной строки из вашего application.ini:

resources.frontController.params.prefixDefaultModule = ""

Попробуйте использовать его таким образом, и посмотрите, работает ли он. Я думаю, это просто говорит приложению, что при использовании модулей модуль с именем "default" не имеет префикса.
Хотя я могу ошибаться, поэтому вам, возможно, придется поэкспериментировать.
Хорошо, может быть, две строки отсутствуют:)

resources.frontController.moduleControllerDirectoryName = "controllers"
Другие вопросы по тегам