FuelPHP
FuelPHP
コミュニティにより開発されているPHP5用Webフレームワーク
FuelPHP » A simple, flexible, community driven PHP5.3 framework.
fuel-packages (Fuel user contributed packages) · GitHub
■インストール手順
curl get.fuelphp.com/oil | sh
oil create blog // プロジェクト作成
■要件
Apache、IIS、Nginx のWebサーバ
PHP5.3以降(FW内でも名前空間や無名関数が使われている)
(PHPUnit)
■oilコマンド
・generate : スケルトンコード等の生成
・refine : タスクの実行
・package : パッケージのインストール、アンインストール、更新
・console : インタラクティブモード
■ディレクトリ構成(デフォルト)
── fuel
│ ├── app //アプリケーションディレクトリ
├── bootstrap.php
│ │ ├── cache
│ │ ├── classes
│ │ │ ├── controller
│ │ │ ├── model
│ │ │ └── view
│ │ ├── config
│ │ │ ├── development
│ │ │ ├── production
│ │ │ ├── staging
│ │ │ └── test
│ │ ├── lang
│ │ ├── logs
│ │ ├── migrations
│ │ ├── modules
│ │ ├── tasks
│ │ ├── tests
│ │ │ ├── controller
│ │ │ ├── model
│ │ │ └── view
│ │ ├── tmp
│ │ ├── vendor
│ │ └── views
│ ├── core //コアディレクトリ(フレームワーク本体)
│ └── packages //パッケージディレクトリ
│ ├── auth
│ ├── email
│ ├── oil
│ ├── orm
│ └── parser
├── public //
│ ├── index.php //各種ディレクトリのパス指定
│ └── assets
│ ├── css
│ ├── img
│ └── js
└── oil
■環境
開発環境、テスト環境、ステージング環境、製品環境を
bootstrap.phpかapacheの環境変数で設定できる。
■コントローラ
例:www.example.com/sample/index
class Sample_Controller extends Controller
{
public function action_index() <= これが呼ばれる。(アクション以下のセグメントが引数で渡される。)
{
}
}
・Restコントローラ
RESTfulをサポート、HTTPメソッドに応じたプレフィックスのメソッドが呼ばれる。
get_index,post_index等
レスポンスフォーマットは、クラスのプロパティや設定ファイル、リクエストの拡張子で選択可能
(xml,json,csv,php,serialize)
■パッケージ
コードの再利用・共有のための手段
app/config/config.php の always_load へ追加するか
Package::load() で利用できるようになる。
packages
└── package_name
├── bootstrap.php
├── classes
│ └── class.php
├── config
│ └── packageconfig.php
└── and_so_on
■タスク
コマンドラインやcronから利用されるクラス(バッチ処理等に利用)
php oil refine class_name arg ...
class_nameのrunメソッドが実行される。
class_name:method_name でメソッドの指定も可。
(coreにコマンドライン処理用のCliクラスが用意されている)
■ユニットテスト
PHPUnitを利用
テスト用の設定、クラスが含まれている。
テストクラスは、TestCaseを継承する。(TestCase自体は、
php oil testPHPUnit_Framework_TestCaseを継承しただけの空)
・テスト実施
php oil test
(php oil test --group=App で、テストのグルーピングも可)
■プロファイリング
PHP Quick Profiler をベースにしている。
実行時間、メモリ使用量等の情報を提供する。
config/config.php の「'profiling' => true」で有効化