57
プロフェッショナルなウェブサ イトのためのフレームワーク Fabien Potencier(ファビエン プートンシェ)

プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

Embed Size (px)

Citation preview

Page 1: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

プロフェッショナルなウェブサイトのためのフレームワーク

Fabien Potencier(ファビエン プートンシェ)

Page 2: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

自己紹介 •  Sensio創業者

– ウェブ制作会社 (フランスとアメリカ) –  1998年創業 – 社員70名 – オープンソースのスペシャリスト – 大企業が顧客 – コンサルティング、トレーニング、開発、ウェブデザイン… –  SymfonyとDoctrineのメインスポンサー

•  symfonyのクリエイターでリード開発者

Page 3: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

連絡先

Fabien Potencier fabien.potencier at sensio.com

twitter@fabpot

http://www.sensiolabs.com/

http://www.symfony-project.org/

http://fabien.potencier.org/

Page 4: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

symfony を

使ったことのある人?

1.0? 1.1? 1.2?

Page 5: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

symfony

•  PHPウェブフレームワーク (MVC)

•  背景 –  Sensioでの10年の経験

– 既存のオープンソースプロジェクト

•  MITライセンス

Page 6: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

豊富なドキュメント •  オープンソースのドキュメント

–  Practical symfony (400ページ) –  symfony リファレンスガイド

(200ページ) –  Form book –  The book (450ページ)

•  活発な翻訳チーム。特に日本チーム

The symfony 1.2Reference Guide

Fabien Potencier!"##$!%&'"(&"

)

*+,-)"%&.'."(&!"#.#$.!

"#### /

The sym

fony 1.2 Reference G

uideFabien

Potencier

2ND EDITION2N

D EDIT

ION

PracticalsymfonyCreate professional web applicationswith PHP and symfony 1.2

Fabien Potencier

Practical symfony

symfony 1.2

Doctrine

F. Potencier

!"#$%&'(

!"##$#%&'"(&")

*+,-)"%&.'."(&!"#.#$.#

"#### /

Page 7: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

その他のsymfony本

Fabien Potencier

les Cahiersdu Programmeur

Avec la contribution de Hugo Hamon

Mieux développer en PHPavec Symfony et Doctrine

Le tutoriel

Jobeet enrichi

et mis à jour

par le créateur

de Symfony !

Page 8: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

日本語のsymfony本

…そしていよいよ thanks to 光宗 朋宏、加賀谷 昌樹、前田 雅央

!"!"#$%&"

'('#!"#$%&"$%&'()*+,-./)*+

0&123+,45678

Fabien Potencier

!"

!"#$%&"

symfony 1.2

Propel

F. Potencier

9:;

9:;

!"#$%$&'%"$'"(

)*+,("&'-%-"$'!"#-$%-$

"#### .

The symfony 1.2Reference Guide

Fabien Potencier

The sym

fony 1.2 Reference G

uideFabien

Potencier

symfony

Fabien Potencier

symfony

Fabien Poten

cier

!"#$!%&%'"$%"(

)*+,("&%-'-"$%!"#-$!-%

"#### .

!"#$%&

!"#$%&!"!"#$%&"

'('#!"#$%&"$%&'()*+,-./)*+

0&123+,45678

Fabien Potencier

!"

!"#$%&"

symfony 1.2

Doctrine

F. Potencier

!"#$%&'(

9:;

9:;

!"#$$%&'("$'")

*+,-)"&'.(."$'!"#.$$.%

"#### /

Page 9: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

とても活発なコミュニティ

メーリングリスト / フォーラム / IRCサポート

700個を超え、毎日1,2個のペースで増えるプラグイン

symfony-project.orgへの訪問者は月間60万人を超える

Page 10: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

symfony 1.0 – 2007年1月 •  既存オープンソースをつなげる糊(glue)として登場:

– Mojavi(大きく変更), Propel, Prado i18n, …

•  他言語やフレームワークからコンセプトを:

–  Routing, CLI, 関数テスト, YAML, Railsヘルパー…

•  さらにコンセプトを追加しミックス

– Webデバッグツールバー, adminジェネレータ, 設定ファイルのカスケード, …

Page 11: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

symfony 1.2 – 2008年11月

•  分離可能だがまとまりのあるコンポーネント: symfonyプラットフォーム

–  Forms, Routing, Cache, YAML, ORMs, …

•  コントローラはまだMojaviベース

–  View, Filterチェーン, …

Page 12: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

ロードマップ

•  1.0 – 2007年1月 •  1.1 – 2008年6月 •  1.2 – 2008年11月 •  1.3 – 2009年11月 •  1.4 – 1.X系最終バージョン(2009末)

1.4 = 1.3 - deprecated features(廃止予定の機能)

Page 13: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

« エンタープライズ » バージョン

Page 14: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

Version 1.0 LTS: 3年間メンテナンス Version 1.1, 1.2, 1.3: 1年間メンテナンス Version 1.4 LTS: 3年間メンテナンス

通常リリース – バグ・セキュリティー修正, PHP新バージョンへの互換性

– (小さなものでも)機能追加なし

– アップグレードは簡単で安全

Page 15: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

商用サポート

•  トレーニング(フランス, アメリカ)

•  アプリケーション立ち上げ 支援

•  サポート

•  コンサルティング

Page 16: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

Symfonyだけのカンファレンス

symfony-live.com

Page 17: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

世界各地でのイベント

Page 18: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

来年日本で Symfony Liveをするなら 参加したいですか?

Page 19: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

たくさんのアプリケーション

Page 20: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

sf-to.org/bookmarks

Page 21: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

sf-to.org/delicious

Page 22: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

sf-to.org/answers

Page 23: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

sf-to.org/dailymotion

Page 24: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

プロフェッショナルのための フレームワーク

Page 25: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

セキュリティ

実行環境切り替え

ユニット/関数テスト

設定と拡張のしやすさ

Adminジェネレータ

開発者用ツール

キャッシュ機構

きれいなURL

国際化機構

進んだformサポート

ORM

プロフェッショナルのツール

Page 26: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

Symfonyは、まとまりがあるがバラバラにも使えるクラス群だ

Page 27: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

Symfonyプラットフォーム

Page 28: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

Symfony Components

•  スタンドアロンでも使えるコンポーネント群 •  個々にパッケージされている •  各コンポーネントのためのウェブサイト(コードとドキュメント)

–  http://components.symfony-project.org/ •  SubversionとGitのレポジトリ

–  http://svn.symfony-project.com/components/ –  http://github.com/fabpot

Page 29: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

リリースされたコンポーネント

•  既にリリース: –  YAML –  Dependency Injection –  Event Dispatcher

•  近日公開 –  Templating –  Request Handler –  Escaper

Page 30: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 31: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 32: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 33: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

symfonyのMVCフレームワークはsymfonyコンポーネントベース

Page 34: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 35: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 36: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 37: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

環境切り替え

Page 38: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

開発者 顧客 エンドユーザ

開発環境 テスト環境 実運用環境

Page 39: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

cache cache cache

debug debug debug

logs logs logs

stats stats stats

開発環境 テスト環境 実運用環境

Page 40: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

開発者用ツール

Page 41: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

開発者用ツール

エラーページ

Page 42: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 43: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 44: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 45: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

開発者用ツール

Webデバッグツールバー

Page 46: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 47: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

セキュリティ XSS, CSRF, SQLインジェクション

Page 48: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

all: .settings: # Form security secret (CSRF protection) csrf_secret: DU5t%gr

# Output escaping escaping_strategy: on

Page 49: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

テスト

Page 50: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 51: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 52: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)
Page 53: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

多フォーマットのネイティブサポート

•  リクエストは(デフォルトではHTML)フォーマットを持つ css, js, xml, atom, json, …

•  コントローラとモデルは同じ

•  異なるテンプレート

•  新しいフォーマットに簡単に対応できる(iPhone) http://www.symfony-project.org/cookbook/1_1/en/iphone!

Page 54: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

RESTアーキテクチャ

•  GET, POST, PUT, DELETE, HEADのサポート

•  PUTとDELETEはブラウザでシミュレート

•  RESTリソースもRoutingでサポート

•  Adminジェネレータもis REST « 対応 »

Page 55: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

Symfonyミートアップ 東京 明日日曜夜

http://bit.ly/sf-tokyo

Page 56: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

質問をどうぞ?

Page 57: プロフェッショナルなウェブサ イトのためのフレームワーク (Japan PHP Conference 2009)

Sensio S.A. 92-98, boulevard Victor Hugo

92 115 Clichy Cedex FRANCE

Tél. : +33 1 40 99 80 80

連絡先 Fabien Potencier

fabien.potencier at sensio.com twitter@fabpot

http://www.sensiolabs.com/

http://www.symfony-project.org/

http://fabien.potencier.org/