はプラディープ・シャーマのソリューション(彼は自分自身を書いて、下記の受け入れ答え)に注意してください。
以下のすべてのコードのコードは、ZF 1.12のためであり、ブートストラップではないZF 2.0
、Zend_LayoutののMVCインスタンスがまだ作成されていない可能性があります。あなたは代わりにZend_Layout::startMvc()
を使用する必要があります。
$view = Zend_Layout::startMvc()->getView() ;
そして、TBH、私はをpreDispatch()関数でこのコードを実行することを好みます。 ZFの新規ユーザーは、このに興味があるかもしれない:
アプリケーション/プラグイン/ 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() ;
}
}
アプリケーション/フォーム/フォルダにデフォルトで新しいApplication_Form_HeaderForm()
意志の自動ロードを呼び出します。 new Zend_Form()
、addElement()
などで直接プラグインにフォームを作成することもできますが、再利用はできません。
もちろん、このプラグインをブートストラップに登録する必要があります。
アプリケーション/ bootstrap.phpの:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initPlugin()
{
$front = Zend_Controller_Front::getInstance() ;
$front->registerPlugin(new Application_Plugin_HeaderForm()) ;
}
}
はアプリケーション/プラグイン/フォルダにデフォルトで新しいApplication_Plugin_HeaderForm()
意志の自動ロードを呼び出す