ブートストラップ中にサービスロケータを設定しようとしています これらのサービスはすべてZend_Dbデータベースに依存しており、各サービスには作成時に必要なデータマッパーが組み込まれています。だから、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);
私が発見した私は
problemNoアダプタがModel_Emailer_DbTable_EmailAccounts
これが理由で見つかった次のエラーを取得することです:
は、このような小さなものになりますemailerサービスでは発生しますが、警告サービスでは発生しません。 emailerサービスが接続しています利用可能なすべての電子メールアカウントを取得し、オブジェクトに格納して後で建設時に使用できるようにします(必要に応じてアカウントリストを操作/クリアしてリセットできるようにマッパーオブジェクトを維持します)。ブートストラップ処理後にZend_Dbアダプタが作成されるのですか? もしそうなら、これを前進させることは可能ですか?
これを個々のモジュールのブートストラップファイルに移動することで回避できますか?
を参照してくださいあなたの方法の開始時にこれを配置します。 そして、あなたは_initメソッドの中にいました。 _initメソッドは、ブートストラップに書き込まれた順に実行されますか? – user966936
内部的に['get_class_methods()'](http://php.net/manual/en/function.get-class-methods.php)を使って、宣言の順にそれらを返すようです。私はリソースプラグインとこの順序をどのように統合するのか分からないので、依存関係をブートストラップする必要があります – Phil
洞察力に感謝します。 – user966936