思想
規約より設定
MVCパターン
テンプレートエンジンは、独自言語ではなくPHP
oilコマンドで、コードの自動生成、データベースマイグレーション、パッケージインストール、自作コードの実行が可能 環境構築
Ubuntu
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のインストール
PHPUnitのインストール
ライブラリ
配置場所
サードパーティ製のライブラリを配置する場所
fuel/vendor
fuel/packages 設定
設定ファイル
ファイル名
内容
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/logs に日付別で出力される
出力レベルは、config.php に指定 'log_threshold' => Fuel::L_ALL,
MVC
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
├── 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 ・・・ ビュー
コントローラー
ルーティング
fuel/app/config/routes.php で設定
リクエストされたURIと実行されるURIを配列で定義
上から順に評価されマッチしたら終了 return array(
'login' => 'user/login'
)
予約済みルート
_root_ : コントローラーがないURI、トップページにアクセスした場合
_404_ : コントローラーやメソッドが定義されていない場合のルート 正規表現によるルーティング
正規表現
意味
:any
任意の部分にマッチ
:segment
URIの1つのセグメントにマッチ
:num
数字にマッチ
:alpha
文字にマッチ
:alnum
文字と数字にマッチ
'hoge/(:any)' => 'hoge/entry/$1',
Authパッケージ
http://fuelphp.jp/docs/1.7/packages/auth/intro.html
Fuel における標準化された認証インターフェイスを提供
ユーザは自分自身で新しいドライバを書くことができ、 基本的なメソッドを保つことで、古いコードに新しいドライバを簡単に統合可能
インターフェースには 3 つのタイプのドライバが含まれています
login ドライバは、ユーザーのログインを処理し同時に複数の login ドライバを扱うことができます
ログインの種類を気にせず group ドライバを使用し、 2 つのタイプのログインを グループ化できます ドライバ
ローカルアクセスを提供する2つのドライバが含まれ、1つ以上のデータベースのテーブルを使用 ドライバ
概要
Simpleauth
基本ドライバセット。ユーザー情報の確認にDBテーブルを利用、グループ、ロール、ACLは設定ファイルに格納。ユーザーレコードにシリアライズされメタデータを格納
Ormauth
ユーザー、グループ、ロール権限すべての情報をDBに格納し、アクセスのために、ORMモデルを使用。APIはSimpleauthとほぼ互換
Opauth
PHP用マルチプロバイダ認証フレームワーク composer でインストールされる。OAuth、OpenIDを使用
Authパッケージには、ドライバに必要なテーブルを作成するためのマイグレーションファイルが含まれる。作成要否は、Auth設定ファイルで決定