FuelPHPを触ることになったのでまずは練習にCRUD(create,read,update,insert)環境を作ることにした時のメモです。
フレームワーク自体はfuelのgitで管理することを目的とします。
環境
- centos6.3
- fuelPHP1.5.3
事前準備に必要なもの
- php5.3以上
- mysql
参考にしたサイト
公式サイトからFuelPHPを取得する
公式サイトにいってDownloadボタンをポチッと押して展開したいディレクトリでunzipする。
(今回はlo.fuel.master.orgってディレクトリにDLしたfuelPHPを展開する)
公式では
# oil を Web からクイックインストールします
$ curl get.fuelphp.com/oil | sh
# oil が、たった今、インストールされました。Sites ディレクトリで blog プロジェクトを作ります
$ cd Sites/
$ oil create blog
上記のような形で記載されていますが、これをすると/usr/local/binにoilコマンド(genarateコマンド)がインストールされてしまうので複数のfuelPHPをローカル運用するときに困りそうなのでDLしてくることにしました。
構成はこんな感じ
lo.fuel.master.org/ #fuelPHP本体の落とし先(適時自分の環境に読み替えてください)
| docs/
| fuel/
| public/
| | assets/
| | index.php #ドキュメントルート
| CHANGELOG.md
| CONTRIBUTING.md
| README.md
| TESTING.md
| build.xml
| oil
core,packageをgitでサブモジュール化する
FuelPHP自体のアップデート時に対応できるように一旦落としたcore,packageを削除します。
cd lo.fuel.master.org
rm -rf fuel/core fuel/packages
mkdir fuel/packages
git(submodule)を実行する
cd lo.fuel.master.org
git submodule add git://github.com/fuel/core.git fuel/core
git submodule add git://github.com/fuel/oil.git fuel/packages/oil
git submodule add git://github.com/fuel/auth.git fuel/packages/auth
git submodule add git://github.com/fuel/parser.git fuel/packages/parser
git submodule add git://github.com/fuel/orm.git fuel/packages/orm
git submodule add git://github.com/fuel/email.git fuel/packages/email
git submodule add git://github.com/fuel/log.git fuel/packages/log
git submodule add git://github.com/fuel/docs.git docs
チェックアウト
cd lo.fuel.master.org
git submodule foreach 'git checkout 1.5/master'
設定ファイル(fuel/app/config/development/db.php)の編集
色々なフレームワーク同様にenvirment(環境設定)毎に設定ができます。デフォルトの環境設定はdevelopmentなのでfuel/app/config/development/db.phpでdbの設定を行います。
ちなみに環境変数を指定しているところはfuel/app/bootstrap.phpにあります。
Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::DEVELOPMENT);
fuel/app/config/development/db.php
<?php
/**
* The development database settings. These get merged with the global settings.
*/
return array(
'default' => array(
'type' => 'mysqli',
'connection' => array(
'hostname' => 'hostname',
'port' => '',
'database' => 'database名',
'username' => 'ユーザー名',
'password' => 'パスワード',
'presistent' => false
),
'enable_cache' => false,
'profiling' => true,
),
);
ormの設定
ORMの設定を有効にします
<?php
.
.
.
//ここの項目のコメントを外してください
'always_load' => array(
'packages' => array(
'orm',
),
.
.
.
//デフォルトのコメントが記載されていますが割愛します
),
scaffold機能でCRUD環境を作る
scaffold概要(Ruby on Railの説明)から参照で
4.1 scaffold概要
Railsには、コードを自動生成するジェネレータが複数用意されています。ここでは、「scaffold」というジェネレータを紹介します。
scaffold(「足場」という意味)は、データベースのテーブルへの登録(CREATE)、参照(READ)、更新(UPDATE)、削除(DELETE)(英語の頭文字をとって、「CRUD」といいます)を行うWebアプリケーションのひな形となるソースコードを自動生成します。scaffoldを実行させれば、「足場」という名の通り、最低限のCRUDを行うWebアプリケーションを作成することができます。
実際の開発においては、使用する機会が少ないかと思いますが、ここではRailsの基本構造を知るために利用します。
公式でもrailの概念を借用しましたと書いてあります
cd lo.fuel.master.org
php oil g scaffold monkey name:string description:text
Created model: APPPATH/classes/model/monkey.php
Created migration: APPPATH/migrations/001_create_monkeys.php
Created controller: APPPATH/classes/controller/monkeys.php
Created view: APPPATH/views/monkeys/index.php
Created view: APPPATH/views/monkeys/view.php
Created view: APPPATH/views/monkeys/create.php
Created view: APPPATH/views/monkeys/edit.php
Created view: APPPATH/views/monkeys/_form.php
指定したmonkeyがcontrollerとmodel名でname:string description:textがテーブルmonkeysの内容を示しています
マイグレーション(migrate)の実行
マイグレーションとはDBの設定反映を行うためのコマンドです。
oilのscaffoldで作成したmodelの設定反映をDBにも行うためのものです。
APPPATH/migrations/003_create_monkeys.phpを見るとわかりやすいです。
<?php
namespace Fuel\Migrations;
class Create_monkeys
{
public function up()
{
\DBUtil::create_table('monkeys', array(
'id' => array('constraint' => 11, 'type' => 'int', 'auto_increment' => true),
'name' => array('constraint' => 255, 'type' => 'varchar'),
'description' => array('type' => 'text'),
'created_at' => array('constraint' => 11, 'type' => 'int', 'null' => true),
'updated_at' => array('constraint' => 11, 'type' => 'int', 'null' => true),
), array('id'));
}
public function down()
{
\DBUtil::drop_table('monkeys');
}
}
最初にテーブルを作成したいのでup()を実行することになります。
cd lo.fuel.master.org
php oil refine migrate
http://localhost/monkeyにアクセスする
これでCRUD環境ができていますのでhttp://localhost/monkeyにアクセスしてください。
実際の開発ではあまり使う機会は少ないと思いますが、最初の一歩にはソースの理解と流れを知るにはちょうどいいかと。