The State of Symfony2参加レポート - Symfony2はすごい!
6月22日に、The State of Symfony2オンラインカンファレンスが開催されました。 このブログエントリーはセッションの概要のによるレポートになります。 The State of Symfony 2参加レポート - Symfony2が大変なことになっています!もあわせてご覧ください。
各セッションのスライドは、こちらのスライド一覧をご参照ください。
セッションリスト
以下のセッションが行われました。
- News of the Symfony2 world (Fabien Potencier)
- Symfony 2 meets Propel 1.5 (Francois Zaninotto)
- Symfony and Doctrine (Jonathan Wage)
- Unit & Functional Tests (Fabien Potencier)
- The new form framework (Bernhard Schussek)
- Caching on the Edge (Fabien Potencier)
以下、セッションごとに簡単に内容を紹介します。 なお、自分はUnit & Functional Testsから見始めたので、それ以降のセッションのみのレポートとなります
4. Unit & Functional Tests (Fabien Potencier)
Symfony2のUnitテスト、Functionalテストについて。
Unitテスト:
- PHPUnitを利用
- 各BundleのTestsディレクトリにテストを配置する
Functionalテスト:
- コントローラのテストではなく、レスポンスに対してテストを行う
- リクエストを別のPHPプロセスとして処理することも可能
- 1つのテストで同時に2つ以上のリクエストを送信してテストが可能
- BrowerKit, CssSelector, DomCrawler, ProcessなどのComponentsを利用
- 流れとしては次の3階層
- ClientオブジェクトがSymfony 2のアプリケーションにリクエストを送る
- 返ってきたレスポンスを元にCrawlerオブジェクトが作られる
- PHPUnitでレスポンスのテストを行う
- レスポンスのプロファイリングも可能
(感想) 特筆すべきはFunctionalテストです。Processにより別プロセスで処理が行えるため、 より高度なFunctionalテストも可能になりました。symfony 1.xのころから 非常にテストを重要視してきただけに、今回も力を入れてきているなと感じました。 [fivestar]
5. The new form framework (Bernhard Schussek)
Symfony2で採用される新しいフォームフレームワークについて。
Form Component
- フォームのデータを表すピュアなPHPオブジェクト= Domain Model
- FieldとFieldGroup
- 単一のフィールドを表すFieldと、複数フィールドを扱うFieldGroup
- 両方とも同じインターフェイスを持つ
- FormもFieldGroup
- FormにはCSRF対策が含まれる
- TextFieldやDateFieldなど様々なFieldがある
- 多くのFieldは国際化対応がされている
Validator Component
- Domain Modelの各プロパティなどに対して、Constraint(制約)を定義する
- Domain Model内にアノテーションを記述したり、YAMLなどでマッピングを行う
- Validationのグルーピングが可能
- グループを切り替えることで、バリデーション内容を動的に切り替えることが可能
- たとえばUserグループはあるフィールドが必須だが、Adminグループでは必須ではないなど
(感想) 今となっては欠かせない機能であるフォームフレームワークが一新されます。 Doctrineもそうですが、ピュアなPHPオブジェクトに対してメタデータのマッピングを行う 方式なので、ドメインモデルを柔軟に扱えるのは大きなメリットかなと思います。 [fivestar]
6. Caching on the Edge (Fabien Potencier)
このセッションが、事前に「Killer Feature of Symfony2」と言われていたものの紹介です。
まずSymfony2とsymfony 1.xのパフォーマンス比較ですが、
- Symfony2は、symfony 1.xの5倍高速
- 同時接続数が多い状況ではsymfony 1.xの85倍高速 ....!?
と、驚愕な数値がでています。なぜそれほどまでにパフォーマンスの改善が行われているかというと
- Symfony2にはHTTPアクセラレータと呼ばれるものを搭載する
- HTTPのキャッシュヘッダーの制御
- HTTP Proxy
- Proxyパターンを利用してKernelをラッピングする?
- ESI(Edge Side Includes)の実装
- 1つのページ内で部分ごとに異なるキャッシュ制御をする仕組み
(感想) この日最後のセッションとなったCaching on the Edgeでは、Symfony2に搭載されるキャッシュの機構についての紹介です。 こうした仕組みを扱う裏側には、RequestをHttpKernelに渡してResponseが返ってくるというSymfony2のシンプルなアーキテクチャの存在があります。 高機能ながらシンプルで柔軟、そして高速に。大幅に進化したSymfony2に期待が膨らむばかりです! [fivestar]
インデックス
Document Index
関連ページリスト
Related Pages
- 日経ソフトウェア7月号にsymfonyの特集記事が掲載されました
- A week of symfony #178 (24->30 May 2010)
- symfony 1.3.5 と 1.4.5
- The State of Symfony2 オンラインカンファレンス
- 第1回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #179 (31 May -> 6 June 2010)
- A week of symfony #180 (7->13 June 2010)
- 第2回 Symfonyユーザー会IRC集会を開催しました
- The State of Symfony2参加レポート - Symfony2が大変なことになっています!
- A week of symfony #181 (14->20 June 2010)
- The State of Symfony2参加レポート - Symfony2はすごい!
- The State of Symfony2カンファレンスのスライド
- A week of symfony #182 (21->27 June 2010)
- セキュリティー リリース: symfony 1.3.6 と 1.4.6
- 第3回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #183 (28 June -> 4 July 2010)
- A week of symfony #184 (5->11 July 2010)
- 第4回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #185 (12->18 July 2010)
- A week of symfony #186 (19->25 July 2010)
- ドキュメント翻訳温泉ツアーを開催しました(7/31~8/1)
- A week of symfony #187 (26 July -> 1 August 2010)
- 第5回 Symfonyユーザー会IRC集会を開催しました
- OSC Nagoya 2010にてブース出展&セミナーを行いました(8/7)
- A week of symfony #188 (2->8 August 2010)
- A week of symfony #189 (9->15 August 2010)
- 第6回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #190 (16->22 August 2010)
- A week of symfony #191 (23->29 August 2010)
- A week of symfony #192 (30 August -> 5 September 2010)
- A week of symfony #193 (6->12 September 2010)
- Symfony2 PR3 リリース; 手を貸してください
- A week of symfony #194 (13->19 September 2010)
- 第8回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #195 (20->26 September 2010)
- PHP Matsuri 2010 参加レポート(Symfony 編)
- A week of symfony #196 (27 September -> 3 October 2010)
- 第9回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #197 (4->10 October 2010)
- A week of symfony #198 (11->17 October 2010)
- 第10回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #199 (18->24 October 2010)
- A week of symfony #200 (25->31 October 2010)
- 第11回 Symfonyユーザー会IRC集会を開催しました
- A week of symfony #201 (1->7 November 2010)
- A week of symfony #202 (8->14 November 2010)
- A week of symfony #203 (15->21 November 2010)
- A week of symfony #204 (22->28 November 2010)
- 第 12 回 Symfony ユーザー会 IRC 集会を開催しました
- Symfony アドベントカレンダー 2010 (Japanese) が始まります
- Symfony2 PR4(プレビューリリース 4)がリリースされました
- A week of symfony #205 (29->5 November 2010)
- 第 13 回 Symfony ユーザー会 IRC 集会を開催しました
- A week of symfony #206 (6->12 December 2010)
- A week of symfony #207 (13->19 December 2010)
- A week of symfony #208 (20->26 December 2010)
- A week of symfony #209 (27 December 2010 -> 2 January 2011)
- A week of symfony #210 (3->9 January 2011)
- Symfony2への寄付にご協力ください!
- 第2回 Symfony2勉強会 参考情報
- 第2回 Symfony2 勉強会レポート
- A week of symfony #214 (31 January -> 6 February 2011)
- 第3回 Symfony2勉強会(名古屋)を開催しました
- A week of symfony #211 (10->16 January 2011)
- A week of symfony #212 (17->23 January 2011)
- A week of symfony #213 (24->30 January 2011)
- A week of symfony #215 (7->13 February 2011)
- symfony 1.3.9 と 1.4.9
- A week of symfony #216 (14->20 February 2011)
- A week of symfony #217 (21->27 February 2011)
- A week of symfony #218 (28 February -> 6 March 2011)
- A week of symfony #219 (7->13 March 2011)
- symfony 1.3.10 と 1.4.10: セキュリティリリース
- A week of symfony #220 (14->20 March 2011)
- Symfony2 の最終バージョンまで... もう少しかかります
- PHPカンファレンス関西レポート(日本Symfonyユーザー会編)
- A week of symfony #221 (21->27 March 2011)
- A week of symfony #223 (4->10 April 2011)
- A week of symfony #224 (11->17 April 2011)
- Symfony2: よりかんたんになりました
- Symfony2: Beta1 がリリースされました
- A week of symfony #225 (18->24 April 2011)
- A week of symfony #226 (25 April -> 1 May 2011)
- Symfony2: よりかんたんになりました (パート 2)
- Symfony2: よりかんたんになりました (パート 3)
- A week of symfony #227 (2->8 May 2011)
- A week of symfony #228 (9->15 May 2011)
- A week of symfony #229 (16->22 May 2011)
- Symfony2: アノテーションが改善されました
- Symfony2: beta2 がリリースされました
- Symfony2: beta3 が利用できるようになりました
- 海外のスライドで紹介された PHP ディベロッパ向けの学習書籍
- Symfony2: Beta4 が利用できるようになりました
- A week of symfony #232 (6->12 June 2011)
- Symfony2: Beta5 が利用できるようになりました
- A week of symfony #233 (13->19 June 2011)
- A week of symfony #234 (20->26 June 2011)
- A week of symfony #235 (27 June -> 3 July 2011)
- A week of symfony #236 (4->10 July 2011)
- A week of symfony #237 (11->17 July 2011)
- A week of symfony #238 (18->24 July 2011)
- A week of symfony #239 (25->31 July 2011)
- オープンソースカンファレンス2011名古屋(8/20)用チュートリアルの公開
- 第1回 Symfony2 勉強会レポート
- 第 13 回 Symfony ユーザー会 IRC 集会を開催しました
- Symfony 2.1: Doctrine 関係のバンドルが Doctrine グループへ移管されました
- [Doctrine] Symfony 向けバンドルが Doctrine グループへ移管されました
- Symfony 2.1.0 beta1 がリリースされました
- Symfony スタンダード・エディション
- Symfony勉強会 #6 レポート
- Symfony 2.3.0 - 最初のLTS(長期サポート) - がリリースされました
- A week of symfony #230 (23->29 May 2011)
- A week of symfony #231 (30 May -> 5 June 2011)
- A week of symfony #246 (12->18 September 2011)
- A week of symfony #247 (19->25 September 2011)
- A week of symfony #248 (26 September -> 2 October 2011)
- A week of symfony #249 (3->9 October 2011)
- A week of symfony #250 (10->16 October 2011)
- A week of symfony #251 (17->23 October 2011)
- A week of symfony #252 (24->30 October 2011)
- A week of symfony #253 (31 October -> 6 November 2011)
- A week of symfony #254 (7->13 November 2011)
- A week of symfony #255 (14->20 November 2011)
- A week of symfony #261 (26 December 2011 -> 1 January 2012)
- SymfonyアドベントカレンダーJP 2011
日本語ドキュメント
Japanese Documents
- 2012/07/04 Dia 17: Busca
- 2012/06/26 Giorno 15: Web Service
- 2012/06/26 Giorno 3: Il ~Modello dei dati~
- 2012/06/26 Day 15: Web Services
- 2012/06/26 Dia 3: O Modelo de Dados