• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
リソースフレームワークBEARのススメ(PHP勉強会#51)
 

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

on

  • 3,887 views

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

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

Statistics

Views

Total Views
3,887
Views on SlideShare
3,655
Embed Views
232

Actions

Likes
2
Downloads
7
Comments
0

7 Embeds 232

http://d.hatena.ne.jp 197
http://linyo.ws 13
http://www.slideshare.net 12
https://twitter.com 6
http://inside.excite.co.jp 2
http://macbook-air.local 1
http://ss.dotbranch.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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