zend - это дб адаптер, созданный до или после начальной загрузки - PullRequest
1 голос
/ 09 ноября 2011

Я пытаюсь настроить сервисный локатор во время начальной загрузки Все эти сервисы основаны на базе данных Zend_Db, и в каждом сервисе есть необходимые средства отображения данных, введенные при создании.

выглядит примерно так:

$alertService = new WORK_Alert_Service_Service(array("AlertMapper" => new Model_Alert_Mapper(), 
                                                          "AlertUserSubscriptionMapper" => new Model_Alert_User_Subscription_Mapper()));

    $emailerService = new WORK_Emailer_Service_Service(
        array("AccountMapper" => new Model_Emailer_Email_Account_Mapper()));

    $encryptionService = new WORK_Encryption_Service_Service();

    $services = array( 
        $alertService,
        $emailerService,
        $encryptionService
    );

    WORK_ServiceLocator::regiserServices($services);

Итак, я обнаружил, что я получаю следующую ошибку

проблемаНе найден адаптер для Model_Emailer_DbTable_EmailAccounts

причина, по которой это происходит для службы электронной почты, но не для службы оповещения, заключается в том, что служба электронной почты соединяется с БД и получает все доступные учетные записи электронной почты и сохраняет их в объекте для последующего использования при создании (поддерживает объект mapper, чтобы можно было управлять / очищать список учетных записей и сбрасывать их при необходимости).

Создается ли адаптер Zend_Db после процесса начальной загрузки? если так, то возможно ли продвинуть это вперед?

Могу ли я обойти это, переместив их в файлы начальной загрузки для отдельных модулей?

1 Ответ

1 голос
/ 09 ноября 2011

Я пытаюсь настроить сервисный локатор во время начальной загрузки

Я предполагаю, что приведенный выше код появляется в методе начальной загрузки _init*. Если это так, просто поместите это в начале вашего метода

protected function _initServices()
{
    $this->bootstrap('db');

    // and the rest

См. http://framework.zend.com/manual/en/zend.application.theory-of-operation.html#zend.application.theory-of-operation.bootstrap.dependency-tracking

...