Zend_Form

ZendFramework 2.0でバリデータのバリデーションメッセージをカスタマイズするメモ

translatorで翻訳する translatorのテキストドメインを使う 個別のメッセージを設定する Zend\Formで使う translatorで翻訳する。 デフォルトのバリデーションメッセージを翻訳してみます。 http://framework.zend.com/manual/2.0/en/modules/zend.validator…

Zend_FormのデコレータとZend_Config_Xmlに関する困ったメモ

Zend_Formに定義ファイルでデコレータを流し込む際のハマりどころについてメモしておきます。

ビューのレンダリングにZend_Formのデコレーターを使うための基本的な考え方に関するメモ

Zend FrameworkのMVCでビュースクリプトをレンダリングする際にZend_Formのデコレーター風に実装できないかを検討していたのですが、比較的簡単にできました。ビュースクリプトをZend_Form_Elementの第1デコレーターに指定することで、基本的なMVC構成とビ…

Zend FrameworkでのモデルとZend_Formの王道的使い方(の予告)

Zend_FormはZend Frameworkを特徴付けるコンポーネントの一つです。ZFではモデル実装部分についてはあまり多くが語られず、基本自由というスタンスなんですが、zf-mvcというMLとZF開発者のBenjamin EberleiさんとMatthew Weier O'Phinneyさんのブログで具体…

Zend_Formでデコレーターを使いまわす

Zend_Formの仕様で、つい忘れがちなのでメモ。 Zend_Configからフォームを育成できるのは便利なんですけど、エレメント間で同じ条件でデコレーターを使うとしたら、ブートストラップ等でデコレーターインスタンスを作って、addDecoratorした方がいい。

Zend_Formを使うなら

Zend_Formについて、ZFのメイン開発メンバーの一人、[Matthew Weier O'Phinney]が連載を開始しているので、要チェックかもしれません。 第1回はシンプルなデコレーター、第2回はデコレーターをレイヤー化して適用する方法が書かれていますね。 http://weie…

任意の粒度で調整することの意義のメモ

http://d.hatena.ne.jp/noopable/20090126/1232929073 ここでの関連で、ちょっとメモhttp://el.jibun.atmarkit.co.jp/g1sys/2009/01/post-037e.html その答えは、テーブル設計を最後に行うことです。これがデスマーチを防ぐには一番の近道なのです。 お客さ…

Zend_Formで実現できるMVC粒度の調整

MVCの分離(初期) ソフトウエア開発の基本の一つに、MVCの分離がある。 PHPは1ファイル中で完結させることも可能なテンプレートスクリプト(異論はあるかもしれない)である。さらに効率的なテンプレートエンジンが開発され、プログラムをMVCに分離して保…

Zend_Dojo_Formで簡単確認画面

http://d.hatena.ne.jp/noopable/20090124/1232802786 これの続きで。もっとも基本的なフォーム遷移のパターンとしては、 入力フォーム・確認画面・完了画面 入力フォームは当然Zend_Formで作成するとして、確認画面をどうするか。 getValuesしてビュースク…

Zend_FormとZend_Dojo_Formの微妙な関係

モデル定義はアプリケーションに制約されたくない。 モデル周りのFW雑感 Webフレームワークの多くでは、アプリケーションをスピーディーに開発するためのモデル定義のセオリーみたいなものがある。 自動でデータベーステーブルを作成してくれたり、テーブル…

Zend_Form_DisplayGroupを使った場合の要素追加

フォームの表示をカスタマイズしていくうえで、DisplayGroupはとても便利なのだが、DisplayGroupはSubFormと違って、要素自体は上位のFormに保持させたままにしたいというコンセプトのはず。 確かに初期的な使い方で、formに追加済みの要素を元にaddDisplayG…

Zend_Form_Decorator_PrepareElements

雑感 http://d.hatena.ne.jp/noopable/20090117/1232166473 この話との関連でもあるんだが、 ZF 1.7.3になって Zend_Form_Decorator_PrepareElementsが用意された。 これはあきらかにデコレーターではないんだが、まぁ、デコレーターとして登録してあると便…

SplDoublyLinkedListでZend_Form_DisplayGroupを拡張する

http://d.hatena.ne.jp/noopable/20090122/1232588081 ここの続きで、 同種のフォームインスタンスを複数格納させる Zend_Formに複数のSubFormを同一クラスからのインスタンスとして追加していく際、名前の衝突を避けるために連番を実装する必要がある。それ…

Zend_Form::setElementsBelongTo()

http://d.hatena.ne.jp/noopable/20090117/1232166473 ここで、ElementにsetNameした理由というのが、Zend_Dojo_FormなどのAjaxを利用した画面構成を行う時に、同一の要素名を持ったエレメントを"ドキュメント内"に複数持つことができないため。 Zend_Formは…

Zend_Formをテーブルタグで2

http://d.hatena.ne.jp/noopable/20090120/1232442059 ここで書いた、ソースを抽象化すると、オレオレのスーパークラス内にloadDefaultDecoratorsを移動、その中からaffect~も削除して独立、 protected function _sort()を変更してaffectを呼んでからparent:…

Zend_Formをテーブルタグで

Zend_Formの要素、Zend_Dojo_Formの要素にかかわらず、指定したグループをテーブルで表示するためのディスプレーグループを作ってみた。 loadDefaultDecoratorsIsDisabled()) { re…

Zend_Form_ElementでsetName

Zend_Formで登録済みのエレメントについては、$element->setName($name);しても、フォーム内のインデックスは更新されない。いったんgetElementsしてsetElements()すれば問題ない。 これは、インデックスとエレメントを1対1にはしていない仕様によるもので、…