Zend Frameworkを使って開発を進めていくと、利用するコンポーネントが増えていくにつれて、アプリケーションのINIファイル(一般的に使われているapplication.ini)の内容が膨らんでいく。特にZend Frameworkのバージョンアップに伴って、Zend_Applicationから利用できるリソースプラグインの種類が充実していくので、ソース中にハードコーディングしていたような環境依存パラメータは、どんどんINIファイルに移行するようになっていく。application.iniファイル内では、できるだけリソース毎にまとめて書くようにしているが、INIファイルをリソース毎に分けて管理できないものかと思っていた。
どんなアプリケーションを開発するときでも、簡単にログを出力できる仕組みは早いうちに実装しておきたいものだ。Zend Frameworkでログ出力をするときはZend_Logを利用するのが一般的。サンプルコードを見ると、
$writer = new Zend_Log_Writer_Stream('php://output');
$logger = new Zend_Log($writer);
と、ライターのインスタンスを生成してロガーのインスタンスを生成するコードを書くのか?と思わされるが、幸いZend_Application_Resource_Logというリソースプラグインが用意されているので、
resources.log.stream.writerName = "Stream" resources.log.stream.writerParams.stream = "php://output"
のような設定ファイルを作れば、ブートストラップからZend_Logのインスタンスを取得できるようになる。`zf create project`コマンドで作られるデフォルトのエラーコントローラには、ブートストラップを利用してログを出力するコードが含まれている。