FuelPHP 1.7.2のブログチュートリアル②
昨日のブログチュートリアルは単にブログの記事表示や新規作成、削除のみでユーザ認証機能はありませんでした。
今日のチュートリアルではユーザ認証機能のあるページを作成します。
【注意】このチュートリアルはアプリ作成の最短の手順を示したものであり、セキュリティ上必要な設定や機能が省略されています。実際にアプリを運用する場合は、『はじめてのフレームワークとしてのFuelPHP第2版(3) 実践編』などを参考に必要なセキュリティ上の設定や機能をすべて実装されることをお薦めします。
FuelPHP 1.7.2のインストール設定
http://fuelphp.com/の「Download v1.7.2 now!」より、fuelphp-1.7.2.zipをダウンロードし展開します。
config.phpの設定
FuelPHPの設定ファイルfuel/app/config/config.phpを変更し、FuelPHPのORMパッケージとAuthパッケージを使えるようにします。
--- a/fuel/app/config/config.php
+++ b/fuel/app/config/config.php
@@ -258,7 +258,7 @@ return array(
/**************************************************************************/
/* Always Load */
/**************************************************************************/
- // 'always_load' => array(
+ 'always_load' => array(
/**
* These packages are loaded on Fuel's startup.
@@ -271,9 +271,10 @@ return array(
* array('auth' => PKGPATH.'auth/')
* );
*/
- // 'packages' => array(
- // //'orm',
- // ),
+ 'packages' => array(
+ 'orm',
+ 'auth',
+ ),
/**
* These modules are always loaded on Fuel's startup. You can specify them
@@ -309,6 +310,6 @@ return array(
* If you don't want the lang in a group use null as groupname.
*/
// 'language' => array(),
- // ),
+ ),
);
配列のキーalways_load
のpackages
のorm
が有効になるように、コメント記号//
を削除し、ormの下にauthを追加します。
auth.phpの設定
Authパッケージの設定ファイルfuel/packages/auth/config/auth.phpをfuel/app/config/にコピーし、driverをOrmauthに変更します。
--- fuel/packages/auth/config/auth.php 2014-07-22 18:23:20.000000000 +0900
+++ fuel/app/config/auth.php 2014-07-23 20:07:04.125328123 +0900
@@ -22,7 +22,7 @@
*/
return array(
- 'driver' => 'Simpleauth',
+ 'driver' => 'Ormauth',
'verify_multiple_logins' => false,
'salt' => 'put_your_salt_here',
'iterations' => 10000,
データベースの準備
MySQL にデータベースを作成します。
> CREATE DATABASE `fuel_blog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
fuel/app/config/development/db.phpを変更し、FuelPHPからデータベースにアクセスできるようにします。
return array(
'default' => array(
'connection' => array(
'dsn' => 'mysql:host=localhost;dbname=fuel_blog',
'username' => 'root',
'password' => '',
),
),
);
ブログの作成
FuelPHPのoil generateコマンドによりコードを自動生成します。
$ php oil generate admin post title:varchar[50] body:text
以下のファイルが生成されました。
【注意】生成された全てのコードに目を通し、問題がないか確認することをお薦めします。
fuel/app/classes/controller/admin.php
fuel/app/classes/controller/admin/post.php
fuel/app/classes/controller/base.php
fuel/app/classes/model/post.php
fuel/app/migrations/001_create_posts.php
fuel/app/views/admin/dashboard.php
fuel/app/views/admin/login.php
fuel/app/views/admin/post/_form.php
fuel/app/views/admin/post/create.php
fuel/app/views/admin/post/edit.php
fuel/app/views/admin/post/index.php
fuel/app/views/admin/post/view.php
fuel/app/views/admin/template.php
fuel/app/views/template.php
マイグレーションを実行し、データベースにテーブルを作成します。
$ php oil refine migrate
これで以下のテーブルが作成されました。
CREATE TABLE IF NOT EXISTS `posts` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(50) NOT NULL,
`body` text NOT NULL,
`created_at` int(11) DEFAULT NULL,
`updated_at` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
マイグレーションで、Authパッケージで必要なテーブルを作成します。
$ php oil refine migrate --packages=auth
Webサーバの起動
PHP 5.4以降のビルトインWebサーバを起動します。
$ php oil server
ブラウザからhttp://localhost:8000/admin/postにアクセスすると、ログインページにリダイレクトされます。
デフォルトの管理者ユーザでログインできます。
ユーザ名:admin
パスワード:admin
http://localhost:8000/admin/postにアクセスすると、記事の一覧が表示され、記事の追加、削除、編集ができます。
Date: 2014/07/25