こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 FuelPHPでモデルを新規作成するコマンドについて丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
FuelPHPのバージョン | 1.8.2 |
XAMPPのバージョン | 8.0.3 |
この記事ではFuelPHPのプロジェクトは
C:\xampp
に配下に【fuelphp】という名前で配置しています。
Windows10の環境でFuelPHPをインストールするやり方は以下の記事をご参考ください。
FuelPHPでモデルを新規作成するコマンドを解説
FuelPHPでモデルを新規作成するコマンドを解説します。
コマンドプロンプトを開きFuelPHPプロジェクトがある場所まで移動させます。
- コマンドプロンプトを開き、cdコマンドで移動
- エクスプローラーからコマンドプロンプトを起動
のどちらかで移動させてください。
エクスプローラーからコマンドプロンプトを起動するやり方は、下記の記事をご参考ください。
この記事では
C:\xampp\fuelphp
まで移動します。
新規作成するモデルは
プロジェクト\fuel\app\classes\model
配下に作成されるので、コマンドをたたく前の状態を確認します。
【.gitkeep】のみであることを確認しました。
では、モデルを新規作成します。
モデルを新規作成するためのコマンドは、
1 |
php oil g model 【モデル名】 【カラム名1】:【型】 【カラム名2】:【型】【カラム名3】:【型】… |
です。
カラム名はいくつ指定しても問題ありません。
型にはSQLの型と同じく
- int
- varchar
- text
など、指定することができます。
桁数を指定したい場合は、
1 |
varchar[5] |
というように型の後ろに[](カッコ)で数字を指定すればOKです。
MySQLを使っている方は上記のコマンドで注意点があります。
それは
1 |
--mysql-timestamp |
のオプションをつけること、です。
なぜかと言いますと、モデルを作成した場合デフォルトで
- created_at
- updated_at
がカラムに追加されるのですが、オプションをつけなかった場合このカラムがint型で作成されてしまうからです。
MySQLで作成する場合は、お気を付けください。
この記事では、【user】というモデル名にして、カラムは
カラム名 | 型-桁数 |
---|---|
name | varchar-20 |
age | int |
remark | text |
で作成します。
上記のモデルを作成するためのコマンドは
1 |
php oil g model user name:varchar[20] age:int remark:text --mysql-timestamp |
です。
コマンドをたたくと
1 2 3 |
C:\xampp\fuelphp>php oil g model user name:varchar[20] age:int remark:text --mysql-timestamp Creating model: C:\xampp\fuelphp\fuel\app\classes\model\user.php Creating migration: C:\xampp\fuelphp\fuel\app\migrations/001_create_users.php |
モデルと同時に紐づくマイグレーションファイルも作成できました。
プロジェクト\fuel\app\classes\model
の中を確認すると、モデルが新たに作成されていることが確認できました。
新規作成されたモデルの中身は↓のようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<?php class Model_User extends \Orm\Model { protected static $_properties = array( "id" => array( "label" => "Id", "data_type" => "int", ), "name" => array( "label" => "Name", "data_type" => "varchar", ), "age" => array( "label" => "Age", "data_type" => "int", ), "remark" => array( "label" => "Remark", "data_type" => "text", ), "created_at" => array( "label" => "Created at", "data_type" => "timestamp", ), "updated_at" => array( "label" => "Updated at", "data_type" => "timestamp", ), ); protected static $_observers = array( 'Orm\Observer_CreatedAt' => array( 'events' => array('before_insert'), 'property' => 'created_at', 'mysql_timestamp' => true, ), 'Orm\Observer_UpdatedAt' => array( 'events' => array('before_update'), 'property' => 'updated_at', 'mysql_timestamp' => true, ), ); protected static $_table_name = 'users'; protected static $_primary_key = array('id'); protected static $_has_many = array( ); protected static $_many_many = array( ); protected static $_has_one = array( ); protected static $_belongs_to = array( ); } |
同時に新規作成されたマイグレーションファイルの中身は↓のようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php namespace Fuel\Migrations; class Create_users { public function up() { \DBUtil::create_table('users', array( 'id' => array('type' => 'int', 'unsigned' => true, 'null' => false, 'auto_increment' => true, 'constraint' => 11), 'name' => array('constraint' => 20, 'null' => false, 'type' => 'varchar'), 'age' => array('constraint' => 11, 'null' => false, 'type' => 'int'), 'remark' => array('null' => false, 'type' => 'text'), 'created_at' => array('null' => true, 'type' => 'timestamp', 'unsigned' => true), 'updated_at' => array('null' => true, 'type' => 'timestamp', 'unsigned' => true), ), array('id')); } public function down() { \DBUtil::drop_table('users'); } } |
まとめ:FuelPHPでモデルを新規作成してみよう
以上がFuelPHPでモデルを新規作成するコマンドの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント