symfony2 introduction
TRANSCRIPT
Symfony2の紹介
file:///../D:/home/goto/test/sfjp/sfjp-cms/web/images/header_bg_top.png
Symfony2の紹介
日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)
Symfony2の紹介
・・・
So, please, as of now, whenever you write a blog post, a piece of documentation, a tweet, or a presentation, never write "Symfony 2" again. Use Symfony2 instead. That way, someone can search for "Symfony2 routing" and he will have only Symfony2 results.
Symfony2の紹介
Symfony2とは?
symfony 1系の良さを引き継ぎつつ、問題点を解決するために(ほぼ)1から書き直された
PHP 5.3以上
コア部分にDIコンテナを採用
symfony 1系で問題となっていた実行速度の改善を目標の1つとしている
2010年後半に正式リリース予定
Symfony2の紹介
Symfony2の機能紹介
デバッグツールバー
プロファイラー
設定の柔軟性
Twig統合、Templating統合
HttpKernelによるリクエストのハンドリング
キャッシュ(ESI)
アノテーション
Symfony2の紹介
1-1.デバッグツールバー
symfony 1系のデバッグツールバーを踏襲。
ツールバーとプロファイラーに分割。ツールバー自体はシンプルに。
画面の下へ。プロファイラーへのリンク
Symfony2の紹介
1-2.デバッグツールバーの改善点
アプリケーションの出力HTMLのサイズが抑制→以前は膨大なデバッグ情報が追加されていたた め、問題になる場合があった ・デバッグ情報の出力のためにアプリケーシ ョンのパフォーマンス低下(正しい計測が できない) ・携帯でデバッグできない ・ネットワークの遅さに引きづられる ・メモリ使用量大
Symfony2の紹介
2-2.プロファイラーの特徴
プロファイル情報は毎回UUIDが割り当てられ、SQLiteデータベースに保存される
UUIDを使った特定のURLへアクセスすれば、当該プロファイル情報を閲覧可能 →デバッグしている環境とは別のPCで閲覧 →プロファイル情報の共有が可能
Symfony2の紹介
3-1.設定の柔軟性
1系では、YAML形式で記述するか、プログラムコード内で記述
Symfony2ではYAML、XML、PHP形式で設定ファイルを同等記述できる →XMLが中心。XMLのバリデーション機能など を使っている。
アノテーションによる設定も可能。 →フォームのバリデーションの設定 →アクションごとにルーティングやキャッシュの 設定
Symfony2の紹介
4-1.Twig統合、Templating統合
Templating統合で、テンプレート継承が可能に
PHPテンプレートの処理効率の向上 →1系では、include回数などの問題があった
設定ファイルでONにするだけでTwigも利用可能 →actionでレンダリングするビューを指定する パラメーターの末尾に「:twig」を追加して切り 替え
PHPテンプレート(with Templating)とTwigテンプレートの処理性能は同等
Symfony2の紹介
4-2-3.テンプレート継承の参考
Diangoテンプレート言語「テンプレートの継承」http://djangoproject.jp/doc/ja/1.0/topics/templates.html#id7
Symfony2の紹介
5-1.HttpKernelHTTPリクエストをHTTPレスポンスに変換するための一連の処理を司る。
1つのKernelはかなり小さい(symfony 1ではあらゆる事が詰め込まれている)
1つのリクエストから、複数のサブリクエストが生成される場合もある。サブリクエストごとに独立したHttpKernelで処理。
Symfony2の紹介
6-1.キャッシュ
HttpKernelを拡張したキャッシュ機構
ESI(Edge Side Include)を実装 →キャッシュからキャッシュをインクルードする
適用可能範囲の拡大、パフォーマンスの改善に寄与
Symfony2の紹介
参考URL
Symfony2http://symfony-reloaded.org/
Symfony2ドキュメントhttp://docs.symfony-reloaded.org/
日本Symfonyユーザー会http://www.symfony.gr.jp/