Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Symfony勉強会#9 form

4,224 views

Published on

Symfony勉強会#9で発表したスライド公開しました。余分なスライドを削除したなど一部改変もありますがなるべくそのままの状態でアップしました。

  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Symfony勉強会#9 form

  1. 1. Symfonyの Formあれこれ Symfony 勉強会 #9
 岡田祐一 @okapon_pon
  2. 2. 自己紹介 • 名前:岡田祐一 (@okapon_pon) • 所属:株式会社クロコス エンジニア • 2013年∼ 日本Symfonyユーザー会 • Symfony歴 2年ほど
  3. 3. 私とSymfony • 2011年 7月 Symfony2.0 リリース そして出会う • 2011年 9月 Symfony作業場(翻訳会)に参加 • 2011年 12月 Symfony勉強会#5の前夜祭に参加 • 2012年 6月 Symfony勉強会 #6 スタッフとして参加 • 2012年 10月 Symfony温泉 (ドキュメント翻訳) • 2013年 5月 Symfony勉強会 #8 ワークショップ講師 • 2013年 11月 Symfony作業場(翻訳会)
  4. 4. 前回のワークショップ Symfony勉強会 #8
 
 サンプルコード (ver. Symfony2.2) https://github.com/okapon/symfony- workshop/wiki
  5. 5. 今日のお話 フォーム(Form)
  6. 6. 内容 • Symfony Formの特徴 • Formあれこれ (Tips)
  7. 7. Symfony Form 特徴 • 高度な抽象化 • さまざまな FormType • プレゼンテーションレイヤーの分離 • DIへの統合 • Validationの組み込み
  8. 8. 柔軟なモデルバインディング • モデルに依存しないデータバインディング • プレゼンテーション層とドメイン層の分離
  9. 9. Data Transformers • Entity Valueへ変換 • プレゼンテーション層とドメイン層の分離
  10. 10. 拡張性 • FormExtension • Symfony DIでうまく統合
  11. 11. イベント駆動 • EventDispatcherを内包 • 動的にフォームを組立可能 ! 各種イベント • PRE_SET_DATA • POST_SUBMIT など
  12. 12. Formあれこれ(Tips) このフォームどう実装したらいいの? Twigでformの値を得るには?
  13. 13. 規約への同意を確認したい 例)利用規約への同意確認
  14. 14. 規約への同意を確認したい • フォームにagreementというcheckboxフィールドを 定義 • mapped オプションfalseでデータオブジェクトには
 マッピングしない
  15. 15. 規約への同意を確認したい • バリデーションを行うコールバック関数を EventListenerに登録 ※ FormEventsやFormErrorなどのクラス をインポートする必要がある
  16. 16. カスタムFormFieldType • 再利用可能にする
  17. 17. カスタムFormFieldType 定義 ! 利用 alias指定
  18. 18. Delete機能でCSRF対策 例) 記事情報を削除する機能 Formの CSRF Protection 機能を使って CSRF対策を行う!
  19. 19.  記事情報をDBから削除するAction Delete機能でCSRF対策 CSRF対策
  20. 20. Twig関数化しとくと便利 テンプレート側 ! ! loopの中で出したい場合 deleteでCSRF対策 20
  21. 21. Twig で使える Form変数 21 各種フォーム変数へは、 form.フィールド名.vars.変数名 でアクセスできる 先ほどのCSRFの例では form._token.vars.value
  22. 22. • value: フィールドにセットされている値 • label: labelに表示される値 • id: HTMLに表示される際のid属性 • required: required属性 など Twigで使える Form変数 22 その他フォーム変数はこちら http://symfony.com/doc/current/reference/forms/ twig_reference.html#twig-reference-form-variables
  23. 23. Twigで使える Form変数 23 required属性がついているlabelタグには自動で *印をつけたい! (応用編)カスタムテンプレート化
  24. 24. Formのカスタムテンプレート 24 作成の詳しい方法はこちら http://docs.symfony.gr.jp/symfony2/cookbook/ form/form_customization.html
  25. 25. 画像を選択させたい 例)ECサイトで商品を選択させたい
  26. 26.  Twigでつかう変数を工夫する!! Delete機能でCSRF対策
  27. 27. 画像を選択させたい FormType側
  28. 28. 画像を選択させたい テンプレート側 • form.itemに forでアクセス(選択項目のFormViewを取り 出す) • form_widget(item)を使って必要なradio boxを表示する • item.vars.labelには Itemインスタンスが入ってます
  29. 29. まとめ ! • Formはモデルに依存せず柔軟にマッピングで きる • 拡張性が提供されている • FormViewが分かれば色々できるようになる!
  30. 30. ご清聴ありがとうございました

×