Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
ルーティングを使ってシンプルなアプリケーション開発を
Report
Kousuke Ebihara
Follow
Web Developer at VOYAGE GROUP, inc.
May. 17, 2009
•
0 likes
1 likes
×
Be the first to like this
Show More
•
1,739 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Check these out next
enNetforum Wakamatsu Presentation
Forum
enNetforum Fukuoka Panelist
Forum
テスト駆動開発のエッセンス
hiroyuki Yamamoto
あなたにもできるアジャイルプラクティス2008
Seiji Kaneko
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
devsumi2009
Agc紹介
masaki.jimbo
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
devsumi2009
Ordinary Management
Koichi ITO
1
of
24
Top clipped slide
ルーティングを使ってシンプルなアプリケーション開発を
May. 17, 2009
•
0 likes
1 likes
×
Be the first to like this
Show More
•
1,739 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Kousuke Ebihara
Follow
Web Developer at VOYAGE GROUP, inc.
Advertisement
Advertisement
Advertisement
Recommended
Kotatsu-Model in Openthology
Kent Ishizawa
2.2K views
•
39 slides
夜までラボ☆テレビ7月24日開催分
ikiikilab
702 views
•
16 slides
第一回ナンセンスプレゼンテーションの会:ローマと道に関するいくつかの問題とその解決
You Koseki
750 views
•
45 slides
JLPT 2nd level Reading
Yoshifumi Murakami
1.3K views
•
21 slides
teaching how to read Japanese with "Min-nano nihongo"
Yoshifumi Murakami
1.1K views
•
31 slides
マニュアル
guestfbb96b2
1.6K views
•
52 slides
More Related Content
Slideshows for you
(17)
enNetforum Wakamatsu Presentation
Forum
•
594 views
enNetforum Fukuoka Panelist
Forum
•
1K views
テスト駆動開発のエッセンス
hiroyuki Yamamoto
•
1.3K views
あなたにもできるアジャイルプラクティス2008
Seiji Kaneko
•
712 views
【12-E-2】 SEC流品質作りこみESQR 組込みソフトウェア開発向け品質作り込みガイドの紹介
devsumi2009
•
2.1K views
Agc紹介
masaki.jimbo
•
444 views
【12-E-6】 ERP導入の投資対効果 ~SAPの導入事例を元に~
devsumi2009
•
3.5K views
Ordinary Management
Koichi ITO
•
1.7K views
Newb CMS eco Business Solution
Kanji Syuto
•
596 views
地域サイト運営にあたって
おもっさま ミカメジャーナル
•
326 views
Meet Charlie Japanese
iug
•
17K views
GIGAPOD OFFICEHARD
tripodworks
•
840 views
Persona design method / ペルソナ概論
Katsumi TAZUKE
•
2.2K views
10分でわかるやりたいこと支援サークル
idealchanger
•
57 views
SIG-SWO-A801-04
guestb1e49d
•
176 views
2009年4月8日セミナー 4.レコメンデーション Q&A
Preferred Networks
•
2K views
Loftwork 20090416
武 河野
•
731 views
More from Kousuke Ebihara
(9)
お前は PHP の歴史的な理由の数を覚えているのか
Kousuke Ebihara
•
33.1K views
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
•
21.8K views
Open pne3 with_symfony
Kousuke Ebihara
•
941 views
Let's creating your own PHP (tejimaya version)
Kousuke Ebihara
•
1.5K views
Hybrid Onboarding
Kousuke Ebihara
•
1.1K views
Using Symfony Templating On Symfony 1
Kousuke Ebihara
•
653 views
Introduction of symfony development process & What's symfony 1.3?
Kousuke Ebihara
•
2.3K views
OAuthで気持ちのいいアクセス制御を
Kousuke Ebihara
•
3.5K views
Php5.3ってなんなんだー
Kousuke Ebihara
•
2.1K views
Advertisement
Recently uploaded
(20)
#《无法毕业办圣安德鲁斯大学毕业证书成绩单》
ooxux
•
3 views
在哪里可以办英国大学文凭《德蒙福特大学毕业证成绩单仿制》
bqexmu
•
2 views
加拿大蒙特埃里森大学毕业证文凭成绩单制作指南
nahej99297
•
0 views
#《辍学办萨克欣应用科学大学毕业证书成绩单》
noeoh
•
2 views
留学美国必看:美国社区大学毕业证、学位证办理流程
oqcymp
•
3 views
留学法国必看:波尔多一大毕业证、学位证办理流程
oqcymp
•
3 views
在哪里可以办英国大学文凭《雷丁大学毕业证成绩单仿制》
bqexmu
•
3 views
메이저카지노사이트 [ωωω.rt33.top]코드 B77 농구토토w매치74회차 ⌽ 필리핀블랙잭 ވ 로스토프 😡 세네갈 바카라 ⑧ 북한 경기 ...
1xBet 원엑스벳
•
22 views
留学美国必看:加州大学圣克鲁兹分校毕业证、学位证办理流程
oqcymp
•
3 views
哪里可以买美国密歇根大学安娜堡分校毕业证文凭
aswdgyo
•
2 views
最新1:1仿造梅西大学毕业证文凭
gboth
•
3 views
MACH PLC EP KIEN.pdf
ssuserdc57db
•
2 views
最新1:1仿造斯旺西大学毕业证文凭
ueususw
•
3 views
无法毕业?美国阿肯色理工大学毕业证书和学位证书办理
sefomo
•
3 views
澳大利亚:南十字星大学毕业证办理详细流程
hyptugu
•
3 views
스포츠중계 《www,rtЗЗ,top》코드 b77 야추주사위 চ 세계축구중계 🚇 몽골 바카라 ڊ 호텔카지노바카라 ㈺ 봄비토토 👓 야구실시간중계
1xBet 원엑스벳
•
37 views
#《无法毕业办都柏林理工学院毕业证书成绩单》
ysazeu
•
3 views
哪里可以买英国威尔士三一圣大卫大学毕业证文凭
aswdgyo
•
3 views
Kostumisasi Home Page.pptx
Muntashir3
•
2 views
在哪里可以办加拿大大学文凭《布兰登大学毕业证成绩单仿制》
bqexmu
•
3 views
ルーティングを使ってシンプルなアプリケーション開発を
ルーティングを使って シンプルなアプリケーション開発を 株式会社手嶋屋海老原昂輔
<ebihara@tejimaya.com>
Who am I?
海老原昂輔 (KousukeEbihara) 21歳 17歳(高校2年)の冬より有限会社手嶋屋 (当時)にアルバイトとして勤務し、 OpenPNEと出会う 私立日本大学芸術学部演劇学科を中退、 2008年10月に株式会社手嶋屋に入社し、 今に至る
OSS 活動
OpenPNE3 Platform の生みの親 OpenPNE2, OpenPNE3 の lead developer (OpenPNE3) opCommunityTopicPluginの臨時 lead developer 関連する OSS プロジェクトへのパッチ提供 symfony Doctrine PHP Shindig Chiara_PEAR_Server
それでは本題
今日はみなさんにsymfonyのルーティング の素晴らしさを訴えかける人として来ま した ただし OpenPNE3 では全然使いこなしてい ないところも残ってるけど……>< 基本的にはsymfony 1.2 を前提に解説しま す
ところでみなさん、こんな アクションを書いてませんか?
ところでみなさん、こんな アクションを書いてませんか?
ところでみなさん、こんな アクションを書いてませんか?
みなさんのアクションは
統一が取れてますか? member モジュールのメンバー追加用アク ションは create なのに、 diary モジュー ルだと対応するアクションが insert に なっている member モジュールと diary モジュールの 表示用アクション show は同じパラメータ を取るにもかかわらずバリデーション ルールが統一されていない
ルーティングをうまく使うと
特定のリクエストパラメータからデータベー スのレコードを取得する処理や、レコードの 存在チェックをアクション側でおこなわなく て済む リクエストパラメータに関するバリデーショ ンをアクション側でおこなわなくて済む リクエストメソッドのチェックをアクション 側でおこなわなくて済む アクション名やバリデーション処理を共通化 しやすくなる
レコード取得をアクション側で
おこなわないようにする apps/frontend/config/routing.ymlでルー ティングルールの設定をおこなう ルール処理用のクラスとしてsfObjectRouteを 使うよう設定 ここでは Doctrine に特化したsfDoctrineRouteとい うsfObjectRouteの派生クラスを例に取ります 対象となるモデルの設定等もおこなう
レコード取得をアクション側で
おこなわないようにする こんな感じの設定になるはず
レコード取得をアクション側で
おこなわないようにする アクション側で簡単アクセス これすら面倒であればpreExecute() に書 いたってよい アクション毎のパラメータの違いとかモデル の違いとかは全部ルーティング側で吸収して くれているので扱いやすいはず
レコード取得をアクション側で
おこなわないようにする いろんなリクエストパラメータを組み合 わせてレコードを取得したい場合 指定したモデルに実在するフィールド名と同 じ名前のリクエストパラメータを指定した場 合、そのパラメータの値でレコードが絞り込 まれる e.g. /member/birthday/1988-04-23 ただし別モデルへの問い合わせが必要になる など、場合によってはsfObjectRouteクラスの 派生クラスの作成が必要になる
レコードの存在チェックを
アクション側でおこなわないようにする 実はもうできています sfObjectRouteは、デフォルトではレコードが 取得できなかった場合に sfError404Exception をスローします
レコードの存在チェックを アクション側でおこなわないようにする
ということは最初の show アクションはこ うすることも可能ですね!
レコードの存在チェックを
おこなわないようにする レコードが取得できなくてもよい場合は 以下のように設定すればOK
リクエストパラメータのバリデーションを アクション側でおこなわないようにする
簡単なバリデーションなら正規表現を 使って設定に書ける
リクエストパラメータのバリデーションを アクション側でおこなわないようにする
複雑なバリデーションなら独自のsfRoute クラスの派生クラスが必要 型チェックとか 正規表現とかじゃなくてis_int使ったりとか 日付の妥当性チェックとか
リクエストメソッドのチェックを
アクション側でおこなわないようにする またもや apps/frontend/config/routing.yml でルーティングルールの設定 クラスにsfRequestRouteを指定すればできま す
アクション名やバリデーション処理
の共通化 sfRouteCollectionを使う ルーティングの設定類をまとめたクラス これを apps/frontend/config/routing.ymlで指定すること で、一気に複数のルーティング設定がおこなわれる ORM 毎にsf****RouteCollection的なクラスが用意 されているのでそれを使うのが手っ取り早い list new create edit update delete show
アクション名やバリデーション処理
の共通化 これだけ 有効にするルールを指定することも
最後に注意事項
今まで紹介してきたようにルーティングの設定をおこ なってアクションへのアクセス制御をおこなう場合、 必ず「symfonyデフォルトのルーティング設定を無効 化」してください ルーティングルールにマッチしなかった場合、 symfonyは別のルールにマッチするかどうかチェック して……ということを繰り返していきます。最終的に どのルールにもマッチしなければ無事 404 になります が、symfonyデフォルトの設定が残っている場合、 /:module/:action などのURLにより予期しない形でア クセスされてしまいます ですので、指定したルーティングルール経由でしかア クションのアクセスを認めない場合symfonyデフォル トのルーティング設定を無効にしなければなりません
まとめ
リクエストからレコードを取得 それsfObjectRouteでできるよ! レコードの存在チェック それsfObjectRouteでできるよ! リクエストのバリデーション sfRouteの正規表現などでできるよ! 独自のルーティングクラスでもできるよ! リクエストメソッドのチェック それsfRequestRouteでできるよ! アクション名やバリデーション処理の共通化 sfRouteCollectionでやりやすくなるよ!
質疑応答タイム
気軽に どうぞ!
Advertisement