FuelPHP & Novius OS



       水野史土
  mizuno@php-web.net
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()
   {
     (省略)
   }                HTTP リクエストの種類を指定
}
                 GET, POST, PUT DELETE

URL/index.php/abc/xyz.json
URL の拡張子

class Controller_Abc extends Controller_Rest
{
   public function get_xyz()
   {
     (省略)           出力フォーマットを指定する
   }
                    xml, json, jsonp, csv, php, serialized
}

URL/index.php/abc/xyz.json
サンプルを作ってみた

use ModelMedal;
class Controller_London extends
Controller_Rest
{
   public function get_medals()
   {
     $this->response(Medal::getdata());
   }
}
URL/index.php/london/medals.json 等
namespace Model;                              'China' => array(
                                                 'gold' => 38,
class Medal extends Model                       'silver' => 27,
{                                                'bronze' => 23,
   static function getdata()                  ),
   {                                          'UK' => array(
      return static::$data;                      'gold' => 29,
   }                                             'silver' => 17,
   static protected $data = array(               'bronze' => 19,
         'USA' => array(                      ),
            'gold' => 46,                );
            'silver' => 29,          }
            'bronze' => 29,
         ),
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にも
コミットしている人が多い

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

Fuel php osc tokyo2012