OpenSocial/shindig/php版 http://www.ark-web.jp/sandbox/wiki/321.html

OpenSocial/shindig

[edit]

install

READMEに書いているが、適当なディレクトリ(例:/var/www/shindig)とかを作ってsvnでチェックアウトする。

svn co http://svn.apache.org/repos/asf/incubator/shindig/trunk/ .

VirtualHostで適当なServerNameを割り当ててDocumentRootを/var/www/shindig/php/にする。
VirtualHostで使ったServerName(仮にshindig.example.comとする)にアクセスしてみる。

http://shindig.example.com/gadgets/ifr?url=http://www.google.com/ig/modules/hello.xml

上記はgoogleのhelloworldのサンプル(http://www.google.com/ig/modules/hello.xml)
Revision: 660801で動作を確認。

[edit]

動作

shindig/phpには .htaccess が置いてあり、mod_rewriteを使ってアクセスを全てindex.phpに渡している。
index.php内で、アクセスされたパスを調べて適当なクラスに処理を渡している。
アクセスコントローラーのようなもの。
REQUEST_METHODがPOSTであればdoPostメソッド
それ以外はdoGetメソッドを呼び出す。
index.php内の$servletMapに有効なパスが記述されている(パス名=>クラス名)

$servletMap = array(
       Config::get('web_prefix') . '/gadgets/files'    => 'FilesServlet',
       Config::get('web_prefix') . '/gadgets/js'       => 'JsServlet',
       Config::get('web_prefix') . '/gadgets/proxy'    => 'ProxyServlet',
       Config::get('web_prefix') . '/gadgets/ifr'      => 'GadgetRenderingServlet',
       Config::get('web_prefix') . '/gadgets/metadata' => 'JsonRpcServlet',
       Config::get('web_prefix') . '/social/data'      => 'GadgetDataServlet',
       Config::get('web_prefix') . '/public.crt'       => 'CertServlet'
);

Config.php内でweb_prefixを指定できる。
通常は指定する必要は無いが、以下のような状況なら変更する必要がある。

[edit]

各パスの動作

現状わかっている事は、

動作がわかったものから下位ページを追加していく。

投稿者斉藤 | パーマリンク

| append.gif

tag: OpenSocial


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-05-28 (水) 18:06:58 (4192d)

アークウェブのサービスやソリューションはこちら