Zend_Form を試す(頓挫した)
Zend Framework 1.5 になってから、Zend_Layout と共に新たに追加された Zend_Form を試してみる。
Html_QuickForm みたいであんまり好きな感じじゃないけど。
# 昔仕事でHtml_QuickFormで苦労した。使いこなせたら便利なんだろうけど使いこなせなかった。
例によって Smarty との連携を目指す。
まずはマニュアルにある通りに書いてみた。
<?php require_once 'Zend/Form.php'; $form = new Zend_Form; $form->setAction('/admin/confirm') ->setMethod('post'); $form->addElement('text', 'username'); echo $form->render($this->_view);
結果
Fatal error: Call to undefined method Smarty_View::formText() in /library/Zend/Form/Decorator/ViewHelper.php on line 247
あらら・・。
エラーの該当箇所のソースを見てみる。
<?php $helper = $this->getHelper(); $separator = $this->getSeparator(); $value = $this->getValue($element); $elementContent = $view->$helper($this->getName(), $value, $this->getElementAttribs(), $element->options);
ドキュメントにある Zend_Smarty_View() にはヘルパー関数を取得したり設定する方法がないからか。。。
ドキュメントの Zend_Smarty_View と連携させるのは難しい。
やるのならZend_View_Abstract を継承した独自の Smarty_View を作るのが良さそう。
差し迫って使う事はないので、気が向いたらいじろう・・。
あ、言うまでもなく Zend_View ではちゃんと動作した。