Upload
fumito-mizuno
View
13.680
Download
1
Embed Size (px)
DESCRIPTION
オープンソースカンファレンス東京 2012秋の発表資料。 FuelPHP の Rest コントローラを用いて、json や xml や csv で出力する方法のデモ。 FuelPHP ベースの多言語対応 CMS である Novius OS の紹介。
Citation preview
FuelPHP & Novius OS
FuelPHP
コミュニティ駆動特定のベンダーに依存しない
github.com/fuelで pull request できる
コア貢献者100人以上ドキュメント、パッケージ等も貢献者多数
FuelPHP
MVC フレームワーク
PHP 5.3 前提
開発当初から名前空間採用
軽量&シンプルドキュメント込みで約 5.1 MB
ルールが緩い、規約より設定
FuelPHP 関連の書籍
FuelPHP 入門
ソーテック社
早川聖司著
はじめてのフレームワークとしてのFuelPHP達人出版会
鈴木憲治著
コントローラを作る
class Controller_Abc extends Controller{
public function action_xyz(){
(省略)
}}
クラス名の先頭に Controller_
Controller クラスを継承して作る
コントローラのメソッド名
class Controller_Abc extends Controller{
public function action_xyz(){
(省略)
}}
メソッド名の先頭に action_
クラス名、メソッド名と URL の対応
class Controller_Abc extends Controller{
public function action_xyz(){
(省略)
}}
URL/index.php/abc/xyz
様々な形式で出力
Rest コントローラ
xml, json, jsonp, csv, php, serialized
API 提供等、外部サイトとの連携
Controller_Rest を継承する
class Controller_Abc extends Controller_Rest{
public function get_xyz(){
(省略)
}}
URL/index.php/abc/xyz.json
クラス名、メソッド名と URL の対応
class Controller_Abc extends Controller_Rest{
public function get_xyz(){
(省略)
}}
URL/index.php/abc/xyz.json
クラス名、メソッド名と URL の対応
class Controller_Abc extends Controller_Rest{
public function get_xyz(){
(省略)
}}
URL/index.php/abc/xyz.json
この部分の対応は、
通常のコントローラと共通
メソッド名のプレフィックス
class Controller_Abc extends Controller_Rest{
public function get_xyz(){
(省略)
}}
URL/index.php/abc/xyz.json
HTTP リクエストの種類を指定
GET, POST, PUT DELETE
URL の拡張子
class Controller_Abc extends Controller_Rest{
public function get_xyz(){
(省略)
}}
URL/index.php/abc/xyz.json
出力フォーマットを指定する
xml, json, jsonp, csv, php, serialized
サンプルを作ってみた
use \Model\Medal;class Controller_London extends Controller_Rest{ public function get_medals() { $this->response(Medal::getdata()); }}URL/index.php/london/medals.json 等
namespace Model;
class Medal extends \Model{ static function getdata() { return static::$data; } static protected $data = array( 'USA' => array( 'gold' => 46, 'silver' => 29, 'bronze' => 29, ),
'China' => array( 'gold' => 38, 'silver' => 27, 'bronze' => 23, ), 'UK' => array( 'gold' => 29, 'silver' => 17, 'bronze' => 19, ), );}
URL/index.php/london/medals.xml
URL/index.php/london/medals.php
Novius OS
FuelPHP ベースの CMS
http://www.novius-os.org/
多言語サイトに対応
2012年8月時点で ver.0.1
Novius OS と FuelPHP の関係
Novius OS にコミットしている人は、FuelPHPにもコミットしている人が多い
単に乗っかているだけではない