要小心普拉迪普·夏爾馬的解決方案(他自己寫的和低於可接受的答案)。
所有下面的代碼代碼是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()
將自動加載到應用/插件/文件夾