Pradeep Sharma の解決策に注意してください (彼が自分で書いて以下に受け入れた回答)。
以下のすべてのコード コードは ZF 1.12 用であり、ZF 2.0 用ではありません
ブートストラップでは、Zend_Layout の MVC インスタンスがまだ作成されていない可能性があります。Zend_Layout::startMvc()
代わりに使用する必要があります:
$view = Zend_Layout::startMvc()->getView() ;
そして、私は preDispatch() 関数でこのコードを実行することを好みます。ZF の新規ユーザーは、次のことに興味があるかもしれません。
application/plugins/HeaderForm.php :
class Application_Plugin_HeaderForm extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$view = Zend_Layout::startMvc()->getView() ;
$view->headerForm = new Application_Form_HeaderForm() ;
}
}
new を呼び出すApplication_Form_HeaderForm()
と、デフォルトでapplication/forms/フォルダーに自動ロードされます。などを使用してプラグインに直接フォームを作成することもできますが、new Zend_Form()
再addElement()
利用はできません。
もちろん、このプラグインをブートストラップに登録する必要があります!
application/Bootstrap.php :
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initPlugin()
{
$front = Zend_Controller_Front::getInstance() ;
$front->registerPlugin(new Application_Plugin_HeaderForm()) ;
}
}
new を呼び出すApplication_Plugin_HeaderForm()
と、デフォルトでapplication/plugins/フォルダーに自動ロードされます