controllerの中なら、
$bootstrap = $this->getInvokeArg('bootstrap');
で取得できる。
modelとかの中でも
$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
で取得できる
bootstrap取得して何をするかというと、application.iniで設定したリソースを取得できる。
例えば、multidbリソースを使ってたとすると
$bootstrap->getPluginResource('multidb')->getDb('hoge1');
みたいに、hoge1 DBへのDBアダプターが取得できる。
このアダプターを、各テーブルクラスのコンストラクタで、テーブルのアダプターとして設定してあげると、普段Default_Adapterを設定しているときのように、どのアダプタを使うとかを、プログラムを作るときに意識しなくていい。
== その後1 ==
生成されたPluginリソース(Zend/Application/Resourceとかにあるやつ)は、
BootstrapのContainer(中身はZend_Registryインスタンス)に入ってたので。
$boostrap->getContainer()->multidb->getDb('hoge1');
でも同様のDBアダプターが取得できる。
getPluginResource()だと、インスタンスがなかった場合作ってくれるが、
Container経由だと、なかったらnullが返ってくるはず。
どっちもpublicメソッドなので、どちらでも使える。
処理数でいうと、getContainerが少ない(チェックとかないため)ので、
最初からインスタンスがあるってわかってるものについては、getContainer()経由がいいのかも。
== その後2 ==
ソース見ても、getPluginResource()は、bootstrapの中からしか呼ばれてないし、
protectedでいいと思うんだけど、なんでだろう?
自前のBootstrap作るときも、Bootstrapクラス継承するから問題ないし。
クラス外から呼ばれることを想定していたとして、どういう場合かがわからん。
getContainer()一本でいいのに。