1

初期の問題 protected function _initMail() { $this->bootstrap('mail'); 私のBootstrap.phpで次のように失敗します:

キャッチされない例外 'Zend_Application_Bootstrap_Exception' とメッセージ '循環リソース依存関係が検出されました'

解決策:独自のブートストラップ メソッド内で Ressource を呼び出さないでください (例: mail => _initMail)。

質問: 構成内のリソースのセットアップを簡素化して、コントローラー内の構成コードを減らすにはどうすればよいですか?

これまでのところ、 $bootstrap->getResource('mail') を取得して、私が達成しようとしたものと少し似たものを返します。Zend_Mail_Transport_Sendmail のインスタンスを返します (ほとんど空で、属性が設定されていません)。目標は、Zend_Mail:: の静的プロパティを config.xml で定義された値に設定することです。

特定のリソースをブートストラップする方法が適切に文書化されている場所がないため、これは実際に Zend リソースをブートストラップする方法に関する一般的な質問のようです。私は単に標準(およびブートストラップビューの例)に従いました。

私のapplication.iniは、メール構成に必要な情報を処理するように構成されているようです:

resources.view[] = 
autoloaderNamespaces[] = "ZSC_"
wall.upload = APPLICATION_PATH "/uploads"
wall.uploadTemporary = APPLICATION_PATH "/temp"

resources.mail.transport.type = sendmail
;resources.mail.transport.host = "smtp.udag.de"
;resources.mail.transport.auth = login
;resources.mail.transport.username = nix
;resources.mail.transport.password = nix
resources.mail.transport.register = true ; True by default

resources.mail.defaultFrom.email = "support@conexco.de"
resources.mail.defaultFrom.name = "Mr Conexco Support"
4

1 に答える 1

1

実際、メソッド$this->bootstrap('mail');を呼び出してい_initMail()ます。したがって、自分自身を無限に呼び出すメソッドがあるため、「循環リソース依存関係」エラーメッセージが表示されます。

メソッドへの呼び出しはファイル内で_initXXX()すでに処理さ$application->bootstrap()れていindex.phpます。メソッド間に依存関係がある場合 (つまり、何か他のものに依存しているメール) にのみ明示的に使用する必要があります。

それが役立つことを願って、

于 2011-09-16T09:59:07.943 に答える