前回のエントリのコードはDoctrine関連の記述が煩雑だった。せっかくZend_Applicationが出てきたのだからそれを利用したスマートな記述ができるのではと思っていたら、すでに先人がいた。
Doctrine ORM and Zend Framework « Danceric
多忙のため更新が滞っている元ネタの作者に代わりZF1.8を適用した形で書き直したというエントリである。内容はコードを見てもらえばわかるとして、doctrine-cliの中の
$application->bootstrap('doctrine')
は
$application->getBootstrap()->bootstrap('doctrine');
の間違いだと思う。(前者だとBootstrapの中の_init*メソッドがすべて実行されてしまうので。)
それから同じくdoctrine-cliの中で
define('APPLICATION_ENV', 'development');
とあるが、この値は外部に出してindex.phpとdoctrine-cliとで共用すべきだろう。preparation.phpの中にまとめてあるのでそれをインクルードするようにした。
doctrine-cli
#!/usr/bin/env php
<?php
/**
* Doctrine CLI script
*/
//Preparation
require_once '../library/preparation.php';
//Doctrine Bootstrap
$application->getBootstrap()->bootstrap('doctrine');
$cli = new Doctrine_Cli($application->getOption('doctrine'));
$cli->run($_SERVER['argv']);