Your SlideShare is downloading. ×
20120507 zendform
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20120507 zendform

2,780
views

Published on

Zend_Formの使い方

Zend_Formの使い方


0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,780
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Zend_FormZ F で モ ダ ン な フ ォ ーム 処 理 2 0 1 2 / 5 / 7
  • 2. PHPカンファレンス北海道2012 / Yusuke Ando (@yando)
  • 3. agendaForm BasicsFormElementValidate
  • 4. Formの処理Webアプリに頻出する扱う必要があるタグの種類が豊富様々なバリデーションも要求されるJavaScriptとの連携も求められる
  • 5. 独自実装は危険ビューが大量のifやforeachであふれる基本的な書式チェックでのバグリスクフォームの仕様は膨らみやすい ex) 複数選択ドロップダウン   初期値のフィルイン  「ここから選択してください」
  • 6. ライブラリに任せる PEAR HTML_QuickForm2ZendFramework Zend_FormZendFramework2 ZendFormForm symfony 1 sfForm Symfony2 SymfonyComponentForm FuelPHP FuelCoreForm CakePHP FormHelper ライブラリによってバリデーションなどに違い
  • 7. Zend_Form
  • 8. Zend_Formフォーム全体を担当するZend_Form各要素はZend_Form_Element検証はZend_Validate整形などはZend_Form_Decorator
  • 9. 基本的な流れZend_Formのオブジェクトを作成必要な入力要素のElementをセットElementにValidateをセットビューではFormのオブジェクトをechoコントローラーではFormのisValidで検査
  • 10. とりあえずの例
  • 11. 実行結果 HTMLタグがオブジェクトから自動生成される(エラーメッセージや、タグのカスタマイズも可能)
  • 12. Element超豊富 Button Multiselect Captcha Password Checkbox Radio File Reset Hidden Select Hash Submit Image TextMultiCheckbox Textarea
  • 13. この書き方はマズイ
  • 14. サブクラス作成Zend_Formのサブクラスを作成オプション設定やElementの生成はinit再利用性アップユニットテストできるようになる!
  • 15. サブクラス化
  • 16. by splorpValidate
  • 17. バリデーションZend_Validateのオブジェクトを生成各ElementにaddValidator()するisValid()にデータを渡して検証検証済のデータはgetValues()で取得
  • 18. フォームへの設定
  • 19. 検証の実行
  • 20. 実行結果
  • 21. Validatorバリ豊富 Alnum GreaterThan Alpha Hex Barcode Hostname Between Iban Callback Identical Cc InArray CreditCard Int Date IpDB_NoRecordExist Isbn DB_RecordExist LessThan Digits NotEmpty EmailAddress PostCode File Regex Float StringLength
  • 22. Validateの自作Zend_Validate_Interfaceをimplementsしたクラスを作成isValidとgetMessagesを定義isValid内で任意のロジックで判定通常と同じくElementへaddValidator
  • 23. Validatorを自作
  • 24. Validatorを設定
  • 25. 実行結果
  • 26. twokingsconfectionsDecorator
  • 27. フォームの整形フォーム全体をrenderした時要素をrenderした時自動で様々なタグ付けを行なっている拡張したり差し替えも可能
  • 28. 要素を直接表示フォームオブジェクト->要素名を参照標準では HtmlTag Label Errorsなどが設定済み拡張したり差し替えも可能エラーはgetErrorsで取得する
  • 29. Decoratorを解除
  • 30. 実行結果後は自由にマークアップを記述すれば良い
  • 31. まとめフォームにはZend_Formを使おうZend_Formのサブクラスを作るZend_Form_Elementで要素を設定検証はZend_Validateビューでは状況に応じて表示
  • 32. サンプル?https://github.com/yandod/php-form-sample