FuelPHP
ナビゲーションに移動
検索に移動
| PHP |
FuelPHP
思想
- 規約より設定
- MVCパターン
- テンプレートエンジンは、独自言語ではなくPHP
- oilコマンドで、コードの自動生成、データベースマイグレーション、パッケージインストール、自作コードの実行が可能
環境構築
Ubuntu
XAMPPのインストール
oil クイックインストール
- piroto@phpenv:~$ curl -L https://get.fuelphp.com/oil | sh
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 100 479 100 479 0 0 447 0 0:00:01 0:00:01 --:--:-- 449
~/.bashrcにPATHを追加
- export PATH="/opt/lampp/bin:$PATH"
FuelPHPのインストールと新しいプロジェクトを作成
- $ oil create test_prj
- $ ls test_prj/
- CHANGELOG.md LICENSE.md TESTING.md composer.lock docs oil
- CONTRIBUTING.md README.md composer.json composer.phar fuel public
- Apacheからアクセスできるようにシンボリックリンクを設定
- $ cd /opt/lampp/htdocs/
- $ ln -s ~/workspaces/test_prj/public test_prj
- アクセス
PHPUnitのインストール
ライブラリ
配置場所
- サードパーティ製のライブラリを配置する場所
- fuel/vendor
- fuel/packages
設定
設定ファイル
- fuel/app/config フォルダに配置
ファイル名 | 内容 |
---|---|
config.php | メイン設定 |
db.php | DB設定 |
routes.php | ルーティング設定 |
環境
環境別の設定ファイル
クラス定数 | 値 | 意味 |
---|---|---|
Fuel::DEVELOPMENT | development | 開発環境 |
Fuel::TEST | test | テスト環境 |
Fuel::STAGING | staging | ステージング環境 |
Fuel::PRODUCTION | production | 本番環境 |
環境の設定
- 現在の環境は、FUEL_ENV の値により決定
- .htaccessが利用できる環境では、
- SetEnv FUEL_ENV production
- 環境変数 FUEL_ENV が定義されていない場合のデフォルトは開発環境
- 環境変数が設定できない場合、fuel/app/bootstrap.php の以下を設定を変更
- Fuel::$env = \Arr::get($_SERVER, 'FUEL_ENV', \Arr::get($_ENV, 'FUEL_ENV', \Fuel::DEVELOPMENT));
設定ファイル
- fuel/app/config のサブフォルダ
ログ
- fuel/app/logs に日付別で出力される
- 出力レベルは、config.php に指定
- 'log_threshold' => Fuel::L_ALL,
MVC
URL基本
- FuelPHP URLの基本パターン
- http://hoge.jp/コントローラ/メソッド[/パラメータ1[/パラメータn]]
ディレクトリ構成
- 全体
- /
- ├── composer.json ・・・ Composer設定
- ├── composer.lock ・・・ Composerによりインストールされた情報
- ├── composer.phar ・・・ Composer実行環境(アーカイブ)
- ├── docs ・・・ ドキュメント
- ├── fuel
- │ ├── app ・・・ アプリケーション
- │ ├── core ・・・ FuelPHP本体
- │ ├── packages ・・・ FuelPHPおよびユーザー作成パッケージ
- │ └── vendor ・・・ Composerパッケージ
- ├── oil ・・・ oilコマンド
- └── public
- ├── assets ・・・ JavaScript ,CSSなど公開リソース
- └── index.php ・・・ フロントコントローラ
- app配下
- app
- ├── bootstrap.php ・・・ Coreクラスの置き換え時などに使用するブートストラップファイル
- ├── cache ・・・ キャッシュ
- ├── classes
- │ ├── controller ・・・ コントローラ
- │ ├── model ・・・ モデル
- │ └── presenter ・・・ プレゼンタ(ViewModel)
- ├── config
- │ ├── config.php ・・・ 全体設定
- │ ├── db.php ・・・ DB設定
- │ ├── development ・・・ 開発環境用設定
- │ ├── oil.php
- │ ├── production ・・・ 本番環境用設定
- │ ├── routes.php ・・・ ルーティング設定
- │ ├── staging ・・・ ステージング環境用設定
- │ └── test
- ├── lang ・・・ 言語ファイル
- ├── logs ・・・ ログ
- ├── migrations ・・・ マイグレーション
- ├── modules ・・・ MVCをフォルダ別にまとめるモジュール機能
- ├── tasks ・・・ コマンドラインから実行されるタスク
- ├── tests ・・・ テスト
- ├── themes ・・・
- ├── tmp ・・・ 一次ファイル
- ├── vendor ・・・ サードパーティ製ライブラリを配置
- └── views ・・・ ビュー
コントローラー
- http://fuelphp.jp/docs/1.6/general/controllers/base.html
- fuel/app/classes/controller ディレクトリに配置
- "Controller_" というプレフィックス
- URL を通じてリクエストされたメソッドは、"action_" というプレフィックス
- HTTPメソッド名をアクション名の前につけることもできます
ルーティング
- fuel/app/config/routes.php で設定
- リクエストされたURIと実行されるURIを配列で定義
- return array(
- 'login' => 'user/login'
- )
予約済みルート
- _root_ : コントローラーがないURI、トップページにアクセスした場合
- _404_ : コントローラーやメソッドが定義されていない場合のルート
Authパッケージ
- http://fuelphp.jp/docs/1.7/packages/auth/intro.html
- Fuel における標準化された認証インターフェイスを提供
- ユーザは自分自身で新しいドライバを書くことができ、 基本的なメソッドを保つことで、古いコードに新しいドライバを簡単に統合可能
- インターフェースには 3 つのタイプのドライバが含まれています
- login
- group
- ACL
- login ドライバは、ユーザーのログインを処理し同時に複数の login ドライバを扱うことができます
- ログインの種類を気にせず group ドライバを使用し、 2 つのタイプのログインを グループ化できます
ドライバ
- ローカルアクセスを提供する2つのドライバが含まれ、1つ以上のデータベースのテーブルを使用
ドライバ | 概要 |
---|---|
Simpleauth | 基本ドライバセット。ユーザー情報の確認にDBテーブルを利用、グループ、ロール、ACLは設定ファイルに格納。ユーザーレコードにシリアライズされメタデータを格納 |
Ormauth | ユーザー、グループ、ロール権限すべての情報をDBに格納し、アクセスのために、ORMモデルを使用。APIはSimpleauthとほぼ互換 |
Opauth | PHP用マルチプロバイダ認証フレームワーク composer でインストールされる。OAuth、OpenIDを使用 |
Authパッケージには、ドライバに必要なテーブルを作成するためのマイグレーションファイルが含まれる。作成要否は、Auth設定ファイルで決定
© 2006 矢木浩人