【FuelPHP】oilコマンドを利用したOrmモデルの自動生成
説明
oilコマンドを利用して、Ormモデル、マイグレーションを作成します。
また、テーブルの作成もoilコマンドで自動でします。
引用
oilコマンドでテーブルの作成するメリットは、データベースの構造もバージョン管理できるようになること
1.oilコマンドのインストール
oilコマンドを利用するためには、下記のコマンドでインストールをします。
$ curl get.fuelphp.com/oil | sh
詳しくはドキュメント
インストール方法 - インストール - FuelPHP ドキュメント
2.モデルの生成
コマンドラインでFuelPHPをインストールしたディレクトリに移動して、次のコマンドを入力します。
$ php oil g model user id:int name:varchar[50]
下記のようにコマンドの応答を見ると、
1行目は、APPPATH/classes/model/直下にsudentというモデルが作成されています。
2行目は、APPPATH/migrations/というディレクトリ以下にマイグレーションが作成されています。
Creating model: /home/apache/sample/fuel/app/classes/model/user.php Creating migration: /home/apache/sample/fuel/app/migrations/001_create_user
マイグレーションはテーブル作成時に、使用します。
Generate - Oil パッケージ - FuelPHP ドキュメント
3.テーブル作成
先ほど作成したマイグレーションを使用して、テーブルを作成します。
次のコマンドを入力します。
$ php oil refine migrate
db.phpで設定されているデータベース上にuserテーブルとmigrationという2つのテーブルが作成されています。
マイグレーションファイルとモデルの中身を確認します。
<?php // マイグレーション namespace Fuel\Migrations; class Create_users { public function up() { \DBUtil::create_table('users', array( 'id' => array('constraint' => 11, 'type' => 'int'), 'name' => array('constraint' => 50, 'type' => 'varchar'), '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('users'); } }
<?php // モデル class Model_User extends \Orm\Model { protected static $_properties = array( 'id', 'name', 'created_at', 'updated_at', ); protected static $_observers = array( 'Orm\Observer_CreatedAt' => array( 'events' => array('before_insert'), 'mysql_timestamp' => false, ), 'Orm\Observer_UpdatedAt' => array( 'events' => array('before_update'), 'mysql_timestamp' => false, ), ); protected static $_table_name = --crud<'users'; }