Your SlideShare is downloading. ×
リソースフレームワークBEARのススメ(PHP勉強会#51)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

リソースフレームワークBEARのススメ(PHP勉強会#51)

3,399
views

Published on

第51回PHP勉強会での発表資料。リソース指向フレームワークBEARの紹介です。

第51回PHP勉強会での発表資料。リソース指向フレームワークBEARの紹介です。

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,399
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. リソース指向 フレームワーク BEAR のススメ 第51回PHP勉強会 2010年3月27日
  • 2. 自己紹介
  • 3. 自己紹介  ハンドル名:TOM  ブランド名:Stellaqua  活動場所  はてなダイアリー http://d.hatena.ne.jp/stellaqua  Webサービス実験場 http://www.stellaqua.com/
  • 4. 自己紹介  最近作ったサービス  お祈りメールメーカー  http://www.stellaqua.com/oinorimail maker  俗に言うお祈りメールの文面をマルコフ連 鎖により自動生成するサービス。  「不毛という表現以外になにもないサービ スだが、こうしたサービスがネタとして注目 されること自体、いまの世相をあらわして いると言えなくもない。」 by やじうまWatch
  • 5. 自己紹介  仕事  現在の肩書は友人と立ち 上げた会社のCTO  訳あって、こっそり求職中
  • 6. 早速、 アンケート
  • 7. 早速、アンケート  “BEAR”って知ってる?  ≧「BEARプロジェクトホーム ページを見た事がある」  “REST”って知ってる?  ≧「RESTという単語を知って いて何となく意味が分かる」
  • 8. 早速、アンケート  今回は”RESTについて何と なく概念を知っている”とい うぐらいの知識を前提でお 話します。
  • 9. 早速、アンケート  詳しい事は、教科書参照
  • 10. 提供 RESTfulWebサービス BEARプロジェクト トライコーン株式会社
  • 11. ←結論
  • 12. ←結論  これからはリソース指向の 時代が来る!  今回は割愛。細かい話は 懇親会とかで。  BEAR楽しいよ! BEARならモテるよ!
  • 13. BEARを使うとこうなる!(画像はイメージです) そんなMVC まだMVC じゃないヤツ じゃないの? 相手にする なよ CakePHP 流行って るなぁ… MVC じゃないのに彼はとても魅力的な ますます FWだった。私も早速BEARを 自信を無 始めて みる事にした。 くしていた ある日、 BEARに 出会った。 この後どうなってしまうのか?! 続きはプレゼンの終りで…
  • 14. ~プロローグ~ 「リソースって 何ぞや?」
  • 15. そもそも“BEAR”って何ぞや?  「BEARは ページ&リソース指向で イベント駆動型の DI PHPアプリケーション フレームワークです。」 (BEARプロジェクトホームページより)
  • 16. BEARの特徴  ROA(Resource Oriented Architecture) リソース指向  POD(Page Oriented Design) ページ指向  EDP(Event Driven Programming) イベント駆動  DI(Dependency Injection) 依存性注入  AOP(Aspect Oriented Programming) アスペクト指向 →リソース指向である事に最も注目
  • 17. “リソース”って何ぞや?  “リソースとは、それ自体を参照する に値するほどの重要性を持つもので ある。 「それに対してハイパーテキストリンク を作成する、それに対して意見また は反論する、その表現を取得または キャッシュする、あるいはその他の操 作を実行することがある場合は、そ れをリソースにすべきである。」” (“RESTfulWebサービス”より抜粋)
  • 18. “リソース”って何ぞや?  リソース指向の構成要素  アドレス可能性  統一インターフェイス  接続性  ステートレス性
  • 19. “リソース”って何ぞや?  噛み砕いて言うと…  URIがあること  CRUDの処理があること  決められた表現を返すこと →実装例:”RESTful”を謳っているWebAPI
  • 20. ~第一章~ 「リソース指向 のススメ」
  • 21. BEARでのリソース指向 GETリクエスト GETリクエスト (HTTP) (疑似HTTP) 200 OK 200 OK レスポンス レスポンス ブラウザ GETリクエスト GETリクエスト (疑似HTTP) (HTTP) 200 OK 200 OK レスポンス レスポンス サーバ クライアント層 ページ層 リソース層
  • 22. BEARでのリソース指向 メソッド (POST/GET /PUT/DELETE) Web URI リソース パラメータ (RSS/XML) BEAR オプション ページ ローカル リクエスト リソース キ ・レスポンスの (CSV/ ャ 方法が共通 YAML/ PHP ッ INI) ファイル シ ュ コード (200/400/500) ロジック リソース ヘッダ (何らかの ボディ 処理/DB) リンク
  • 23. リソース指向の良いところ  役割分担が明確  リソース層:ロジックのみ  ページ層:表現の調整のみ  “リソース”という概念での抽象化  バックエンドに何があるか意識 する事無く利用できる。(複雑 な処理、外部API、DB…)
  • 24. リソース指向の難しいところ  リソース設計が難しい  RESTに関する(正確な)知 識が必要。
  • 25. ~第二章~ 「BEAR 3分間 クッキング」
  • 26. サンプル(お祈りメールメーカー)  Scaffold $ bear init-app /path/to/oinorimailmaker BEAR App files are successfully made at '/path/to/oinorimailmaker'. Thank you for using BEAR.Ok. $ cd /path/to/oinorimailmaker $ ls ./ ../ App/ App.php data/ htdocs/ logs/ tmp/
  • 27. サンプル(お祈りメールメーカー)  リソース(App/Ro/sentence.php) <?php class App_Ro_Sentence extends BEAR_Ro { public function onRead($values) { $lib_sentence = new Lib_Sentence(); if ( ($result = $lib_sentence->build()) === false ) { throw $this->_exception('文章の生成に失敗しました。’ ,array('code'=>BEAR::CODE_ERROR,'info'=>array()); } return $result; } }
  • 28. サンプル(お祈りメールメーカー)  ページ(htdocs/index.php) <?php require_once 'App.php'; class Page_Index extends App_Page { : public function onInit(array $args) { $params = array('uri' => 'sentence'); $this->_resource->read($params)->set('result'); } : } $options = array('cache' => array('type' => 'init', 'life' => 1)); App_Main::run('Page_Index', $options);
  • 29. サンプル(お祈りメールメーカー)  テンプレート (App/views/pages/index.tpl) <html> <body> <div> <p>{$result|nl2br}</p> </div> </body> </html>
  • 30. ~第三章~ 「BEARの特徴 いろいろ」
  • 31. ページ指向  1ページ=1クラスでフロント コントローラを持たない。  リソースに対してクライアント としてリクエストを投げる形 でデータを受け取り、表現の 調整を行う。
  • 32. イベント駆動  JavaScriptなどのイベントモ デルと似たイメージ。  ページにonClickハンドラを 定義して、クリックされた時 の処理を記述する事ができ る。
  • 33. DI  オブジェクト間の疎結合の実現。  使いたいモノ(設定/データ/オ ブジェクト)を放り込んでおいて、 必要な時に取り出すイメージ。  BEARのクラスだけでなく、自作 クラスも簡単に再利用できる。
  • 34. アスペクト指向  phpdoc形式のアノテーショ ンで指定する。  リソースの入力値・出力値の 変換を行ったり、エラー発生 時の処理を行ったりを、アド バイスとして定義できる。
  • 35. ~終章~ 「←結論、 再び」
  • 36. ←結論  これからはリソース指向の 時代が来る!  BEARならモテる! おいでよ 君たち 泳ごうよ! リソース指向! DI! アスペクト指向! ページ指向! イベント駆動!
  • 37. 最後に…  情報源  BEARプロジェクトホームページ →http://code.google.com/p /bear-project/  BEARは現在も発展途上。 どんどん利用してフィードバックし ましょう!
  • 38. ご清聴 ありがとう ございました