タグ別アーカイブ: CMS

FuelPHPで管理画面のベースを爆速で作成してみる

タグ: , | 投稿日: 投稿者:

こんばんは、ベッチです。

タイトル通り、FuelPHPで管理画面のベースを爆速で作成してみたいと思います。
Mac前提ですので、Windowsの方は便宜読み替えて下さい。

1.まずはoilコマンドをインストールします。

※CakePHPでいうbakeコマンドみたいなものです。

curl get.fuelphp.com/oil | sh

2.oilコマンドを使ってFuelPHPプロジェクトを作成します。

プロジェクト作成には思ったより時間かかりますので気長に待って下さい。

oil create SampleSite

作成されたFuelPHPプロジェクト内のpublicディレクトリをドキュメントルートにしてアクセスするとちゃんと画面が表示されます。

fuelphp1

3.データベース設定を書き換えます。

ファイルは「fuel/app/config/development/db.php」です。
デフォルトでは以下となっていますが、ご自分の環境に合わせて便宜変更して下さい。

<!--?php /**  * The development database settings. These get merged with the global settings.  */ return array(     'default' =--> array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=fuel_dev',
            'username'   => 'root',
            'password'   => 'root',
        ),
    ),
);

4.アプリケーション設定ファイルを書き換えます。

ファイルは「fuel/app/config/config.php」です。
always_loadにてauthとormを有効にします。

/**************************************************************************/
/* Always Load                                                            */
/**************************************************************************/
'always_load'  => array(
     'packages'  => array(
        'auth',
        'orm',
     ),
),

whitelisted_classesにてValidationを設定します。

'whitelisted_classes' => array(
    'Fuel\\Core\\Response',
    'Fuel\\Core\\View',
    'Fuel\\Core\\ViewModel',
    'Fuel\Core\Validation',
    'Closure',
),

タイムゾーンを設定します。

'default_timezone' => 'Asia/Tokyo',

5.SimpleAuthライブラリの設定を変更します

ファイルは「fuel/packages/auth/config/simpleauth.php」です。
グループ設定を有効にします。

'groups' => array(
    -1 => array('name' => 'Banned', 'roles' => array('banned')),
    0 => array('name' => 'Guests', 'roles' => array()),
    1 => array('name' => 'Users', 'roles' => array('user')),
    50 => array('name' => 'Moderators', 'roles' => array('user', 'moderator')),
    100  => array('name' => 'Administrators', 'roles' => array('user', 'moderator', 'admin')),
),

6.ユーザモデル、ユーザテーブル、ユーザアカウントを作成します

以下のコマンドでユーザモデルが自動的に作成されます。

oil generate model users username:varchar[50] password:string group:int email:string last_login:int login_hash:string profile_fields:text
	Creating model: /Volumes/DATA/DocumentRoot/SampleSite/fuel/app/classes/model/user.php
	Creating migration: /Volumes/DATA/DocumentRoot/SampleSite/fuel/app/migrations/001_create_users.php

上記で作成された「fuel/app/migrations/001_create_users.php」からユーザテーブルを作成します。

oil refine migrate
Performed migrations for app:default:
001_create_users

次に実際のユーザアカウントを作成します。

oil console
Fuel 1.1-rc1 - PHP 5.3.6 (cli) (Sep  8 2011 19:31:33) [Darwin]
>>> Auth::create_user('admin', 'password', 'demo@example.com', 100);
1

Ctrl+Cでぬけて下さい。

7.管理画面用のビューを作成

管理画面用のビューを作成するのですが、管理画面で操作する用のモデルを1つつくらないといけないのでとりあえずpostsというダミーのモデルを作成します。
この過程で管理画面のビューが作成されます。(存在していれば作成されません)

oil generate admin posts title:string slug:string summary:text body:text user_id:int

8.管理画面にアクセスしてみましょう

/adminにアクセスすると以下のようになります。

Login

ちゃんと認証画面が表示されました。

6で作成したアカウントでログインできます。

この後はCakePHP同様oilコマンドを利用する事でCRUD画面は即座に作成できます。

FuelPHPはCodeIgniterの派生系なので使い勝手良さそうです。

これからちょっとずつさわってみようかと思います。