miyabihitoの日記

個人的な技術メモ

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 // プロジェクト作成

■要件
ApacheIIS、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.phpapache環境変数で設定できる。

■コントローラ
例: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」で有効化