23
FuelPHP & Novius OS 水野史土 [email protected]

Fuel php osc tokyo2012

Embed Size (px)

DESCRIPTION

オープンソースカンファレンス東京 2012秋の発表資料。 FuelPHP の Rest コントローラを用いて、json や xml や csv で出力する方法のデモ。 FuelPHP ベースの多言語対応 CMS である Novius OS の紹介。

Citation preview

Page 1: Fuel php osc tokyo2012

FuelPHP & Novius OS

水野史土[email protected]

Page 2: Fuel php osc tokyo2012

FuelPHP

コミュニティ駆動特定のベンダーに依存しない

github.com/fuelで pull request できる

コア貢献者100人以上ドキュメント、パッケージ等も貢献者多数

Page 3: Fuel php osc tokyo2012

FuelPHP

MVC フレームワーク

PHP 5.3 前提

開発当初から名前空間採用

軽量&シンプルドキュメント込みで約 5.1 MB

ルールが緩い、規約より設定

Page 4: Fuel php osc tokyo2012

FuelPHP 関連の書籍

FuelPHP 入門

ソーテック社

早川聖司著

はじめてのフレームワークとしてのFuelPHP達人出版会

鈴木憲治著

Page 5: Fuel php osc tokyo2012

コントローラを作る

class Controller_Abc extends Controller{

public function action_xyz(){

(省略)

}}

クラス名の先頭に Controller_

Controller クラスを継承して作る

Page 6: Fuel php osc tokyo2012

コントローラのメソッド名

class Controller_Abc extends Controller{

public function action_xyz(){

(省略)

}}

メソッド名の先頭に action_

Page 7: Fuel php osc tokyo2012

クラス名、メソッド名と URL の対応

class Controller_Abc extends Controller{

public function action_xyz(){

(省略)

}}

URL/index.php/abc/xyz

Page 8: Fuel php osc tokyo2012

様々な形式で出力

Rest コントローラ

xml, json, jsonp, csv, php, serialized

API 提供等、外部サイトとの連携

Page 9: Fuel php osc tokyo2012

Controller_Rest を継承する

class Controller_Abc extends Controller_Rest{

public function get_xyz(){

(省略)

}}

URL/index.php/abc/xyz.json

Page 10: Fuel php osc tokyo2012

クラス名、メソッド名と URL の対応

class Controller_Abc extends Controller_Rest{

public function get_xyz(){

(省略)

}}

URL/index.php/abc/xyz.json

Page 11: Fuel php osc tokyo2012

クラス名、メソッド名と URL の対応

class Controller_Abc extends Controller_Rest{

public function get_xyz(){

(省略)

}}

URL/index.php/abc/xyz.json

この部分の対応は、

通常のコントローラと共通

Page 12: Fuel php osc tokyo2012

メソッド名のプレフィックス

class Controller_Abc extends Controller_Rest{

public function get_xyz(){

(省略)

}}

URL/index.php/abc/xyz.json

HTTP リクエストの種類を指定

GET, POST, PUT DELETE

Page 13: Fuel php osc tokyo2012

URL の拡張子

class Controller_Abc extends Controller_Rest{

public function get_xyz(){

(省略)

}}

URL/index.php/abc/xyz.json

出力フォーマットを指定する

xml, json, jsonp, csv, php, serialized

Page 14: Fuel php osc tokyo2012

サンプルを作ってみた

use \Model\Medal;class Controller_London extends Controller_Rest{ public function get_medals() { $this->response(Medal::getdata()); }}URL/index.php/london/medals.json 等

Page 15: Fuel php osc tokyo2012

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, ), );}

Page 16: Fuel php osc tokyo2012

URL/index.php/london/medals.xml

Page 17: Fuel php osc tokyo2012

URL/index.php/london/medals.php

Page 18: Fuel php osc tokyo2012

Novius OS

FuelPHP ベースの CMS

http://www.novius-os.org/

多言語サイトに対応

2012年8月時点で ver.0.1

Page 19: Fuel php osc tokyo2012
Page 20: Fuel php osc tokyo2012
Page 21: Fuel php osc tokyo2012
Page 22: Fuel php osc tokyo2012
Page 23: Fuel php osc tokyo2012

Novius OS と FuelPHP の関係

Novius OS にコミットしている人は、FuelPHPにもコミットしている人が多い

単に乗っかているだけではない