Top Banner
Symfony2の紹介 Symfony2の紹介 日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto
48

Symfony2 introduction

Jan 21, 2018

Download

Technology

Hidenori Goto
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Symfony2 introduction

Symfony2の紹介

file:///../D:/home/goto/test/sfjp/sfjp-cms/web/images/header_bg_top.png

Symfony2の紹介

日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)

Page 2: Symfony2 introduction

Symfony2の紹介

自己紹介

後藤 秀宣(ごとう ひでのり)

@hidenorigoto

symfonyは1.2あたりからマジメに利用

日本Symfonyユーザー会 温泉ツアー

Page 3: Symfony2 introduction

Symfony2の紹介

大切なお知らせ

Page 4: Symfony2 introduction

Symfony2の紹介

Symfony 2

Page 5: Symfony2 introduction

Symfony2の紹介

 

Page 6: Symfony2 introduction

Symfony2の紹介

symfony 2

Page 7: Symfony2 introduction

Symfony2の紹介

 

Page 8: Symfony2 introduction

Symfony2の紹介

Symfony2

Page 9: Symfony2 introduction

Symfony2の紹介

Page 10: Symfony2 introduction

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.

Page 11: Symfony2 introduction

Symfony2の紹介

セッション概要

Symfony2の概要

Symfony2の機能ピックアップ紹介(7つ)

Page 12: Symfony2 introduction

Symfony2の紹介

 

Symfony2の概要

Page 13: Symfony2 introduction

Symfony2の紹介

Symfony2とは?

symfony 1系の良さを引き継ぎつつ、問題点を解決するために(ほぼ)1から書き直された

PHP 5.3以上

コア部分にDIコンテナを採用

symfony 1系で問題となっていた実行速度の改善を目標の1つとしている

2010年後半に正式リリース予定

Page 14: Symfony2 introduction

Symfony2の紹介

Symfony2の機能の紹介

Page 15: Symfony2 introduction

Symfony2の紹介

Symfony2の機能紹介

デバッグツールバー

プロファイラー

設定の柔軟性

Twig統合、Templating統合

HttpKernelによるリクエストのハンドリング

キャッシュ(ESI)

アノテーション

Page 16: Symfony2 introduction

Symfony2の紹介

 

1.デバッグツールバー

Page 17: Symfony2 introduction

Symfony2の紹介

1-1.デバッグツールバー

symfony 1系のデバッグツールバーを踏襲。

ツールバーとプロファイラーに分割。ツールバー自体はシンプルに。

画面の下へ。プロファイラーへのリンク

Page 18: Symfony2 introduction

Symfony2の紹介

1-2.デバッグツールバーの改善点

アプリケーションの出力HTMLのサイズが抑制→以前は膨大なデバッグ情報が追加されていたた め、問題になる場合があった  ・デバッグ情報の出力のためにアプリケーシ   ョンのパフォーマンス低下(正しい計測が   できない)  ・携帯でデバッグできない  ・ネットワークの遅さに引きづられる  ・メモリ使用量大

Page 19: Symfony2 introduction

Symfony2の紹介

 

2.プロファイラー

Page 20: Symfony2 introduction

Symfony2の紹介

2-1.プロファイラー

デバッグツールバーと独立(開発しているサイトとの干渉の削減)

より高機能に。

Page 21: Symfony2 introduction

Symfony2の紹介

2-2.プロファイラーの特徴

プロファイル情報は毎回UUIDが割り当てられ、SQLiteデータベースに保存される

UUIDを使った特定のURLへアクセスすれば、当該プロファイル情報を閲覧可能 →デバッグしている環境とは別のPCで閲覧 →プロファイル情報の共有が可能

Page 22: Symfony2 introduction

Symfony2の紹介

 

3.設定の柔軟性

Page 23: Symfony2 introduction

Symfony2の紹介

3-1.設定の柔軟性

1系では、YAML形式で記述するか、プログラムコード内で記述

Symfony2ではYAML、XML、PHP形式で設定ファイルを同等記述できる →XMLが中心。XMLのバリデーション機能など   を使っている。

アノテーションによる設定も可能。 →フォームのバリデーションの設定 →アクションごとにルーティングやキャッシュの   設定

Page 24: Symfony2 introduction

Symfony2の紹介

 

4.TwigとTemplating

Page 25: Symfony2 introduction

Symfony2の紹介

4-1.Twig統合、Templating統合

Templating統合で、テンプレート継承が可能に

PHPテンプレートの処理効率の向上 →1系では、include回数などの問題があった

設定ファイルでONにするだけでTwigも利用可能 →actionでレンダリングするビューを指定する   パラメーターの末尾に「:twig」を追加して切り   替え

PHPテンプレート(with Templating)とTwigテンプレートの処理性能は同等

Page 26: Symfony2 introduction

Symfony2の紹介

 

4-2.テンプレートの継承とは

Page 27: Symfony2 introduction

Symfony2の紹介

4-2-1.1系のテンプレート(継承な

あくまで中に埋め込んでいく

Page 28: Symfony2 introduction

Symfony2の紹介

4-2-2.テンプレート継承

親子関係が自由に

Page 29: Symfony2 introduction

Symfony2の紹介

4-2-3.テンプレート継承の参考

Diangoテンプレート言語「テンプレートの継承」http://djangoproject.jp/doc/ja/1.0/topics/templates.html#id7

Page 30: Symfony2 introduction

Symfony2の紹介

 

4-3.Twigの構文のサンプル

Page 31: Symfony2 introduction

Symfony2の紹介

4-3-1.Twigの構文

Page 32: Symfony2 introduction

Symfony2の紹介

 

5.HttpKernelによるリクエストハンドリング

の汎用性改善

Page 33: Symfony2 introduction

Symfony2の紹介

5-1.HttpKernelHTTPリクエストをHTTPレスポンスに変換するための一連の処理を司る。

1つのKernelはかなり小さい(symfony 1ではあらゆる事が詰め込まれている)

1つのリクエストから、複数のサブリクエストが生成される場合もある。サブリクエストごとに独立したHttpKernelで処理。

Page 34: Symfony2 introduction

Symfony2の紹介

 

6.キャッシュ

Page 35: Symfony2 introduction

Symfony2の紹介

6-1.キャッシュ

HttpKernelを拡張したキャッシュ機構

ESI(Edge Side Include)を実装 →キャッシュからキャッシュをインクルードする

適用可能範囲の拡大、パフォーマンスの改善に寄与

Page 36: Symfony2 introduction

Symfony2の紹介

6-2.ESIキャッシュの動作例

Page 37: Symfony2 introduction

Symfony2の紹介

6-2-1.Symfony2のキャッシュ

Page 38: Symfony2 introduction

Symfony2の紹介

6-2-2.Symfony2のキャッシュ

キャッシュ期限切れのパーツだけ更新

各パーツのキャッシュ利用率が向上

Page 39: Symfony2 introduction

Symfony2の紹介

7.アノテーション

Page 40: Symfony2 introduction

Symfony2の紹介

7-1.アノテーションでモデル設定

Doctrine2

Page 41: Symfony2 introduction

Symfony2の紹介

3-2.アノテーションでバリデー

エンティティのバリデーションの設定

Page 42: Symfony2 introduction

Symfony2の紹介

3-3.アクションの設定

ルーティングやテンプレート、キャッシュの設定

Page 43: Symfony2 introduction

Symfony2の紹介

どうですか?Symfony2

Page 44: Symfony2 introduction

Symfony2の紹介

参考URL

Symfony2http://symfony-reloaded.org/

Symfony2ドキュメントhttp://docs.symfony-reloaded.org/

日本Symfonyユーザー会http://www.symfony.gr.jp/

Page 45: Symfony2 introduction

Symfony2の紹介

Symfonyユーザー会の活動に協力していただけるメンバーを絶賛募集しています

Page 46: Symfony2 introduction

Symfony2の紹介

 

(多分)2010年末に、

Symfony2向け公式チュートリアルが出ます(個人的予想)

Page 47: Symfony2 introduction

Symfony2の紹介

 

翻訳者募集中!

Page 48: Symfony2 introduction

Symfony2の紹介

 

ブースでライブコーディングしています!

2F 205教室