FuelPHPをやってみる (29) - Orm\Auth -
これも1.6から入った物だと思うのだけど、まぁ名前の通り「SimpleAuthをOrmパッケージでやった物」的なスタンスなのかなと。まぁ「Orm自体だけでもパフォーマンスそんなに良いとは言えないような気がするのに、これ必要なんですか」っていう疑問がまず出たのだけど、まぁやってみましょうか的な感じで
恐らくはormパッケージも使うのでalways_loadにはorm及びauthが必要かと
Orm\Authのモデルが使うテーブルをマイグレーション
oil r migrate --packages=auth
っつーかauthパッケージで使うテーブルってマイグレーションで出来るのかと。それは知らんかった
fuel/app/config/auth.php
fuel/packages/auth/config/auth.phpからベースはコピー
<?php
return array(
"driver" => "Ormauth",
"verify_multiple_logins" => false,
"salt" => "put_your_salt_here",
"iterations" => 10000,
);
driverをOrmauthに変える。でその他もろもろな設定はfuel/packages/config/ormauth.phpがあるのでこれもコピーして内容を要件に応じて変えれば良い
これで終わり。あとは普通にAuthパッケージを使う用法で利用できる
Auth::create_user("demo", "demo", "demo@example.com");
なのをoil consoleとか使って適当に作る。あとはコントローラーとビューを作る(ビューは省略)
<?php
class Controller_Sample extends Controller {
public function action_index() {
var_dump(Auth::check());
return View::forge("login");
}
public function post_login() {
Auth::login();
Response::redirect("sample");
}
}
ただAuth::checkな値を画面にvar_dumpするだけで、あとビューから入力されたユーザー名とパスワードでログインする処理と、その後にリダイレクトするだけ。まぁそこら辺はSimpleAuthと変わらないはずなので(ry
でOrmAuthを使うメリットとして、モデルリレーションを行なって利用する方式な仕様の場合には有効かも知れないってところかなと