FuelPHPにはoilコマンドという便利なやつがあります。CakePHPのbakeみたいなものです。

よく使うものをメモ。

モデル生成

[code lang=text]
oil g model model_name field_name1:type field_name2:type field_name3:type
[/code]

モデルを作るコマンドです。model_nameはモデル名、field_nameはフィールド名、typeは型です。型はMySQLの基本的なものならなんでも使えます。varcharのように長さをしていするものはvarchar[255]enumenum['Y','N']のように角括弧を使って指定します。また、idcreated_at(作成時刻)とupdated_at(更新時刻)は自動的にフィールドが作成されます。時刻が必要ない場合は、--no-timestampオプションをつければ、created_atupdated_atは作られません。

コントローラ生成

[code lang=text]
oil g controller controller_name action1 action2 action3
[/code]

コントローラを作るコマンドです。これは特に説明は必要ないと思いますが、controller_nameはコントローラ名、actionはアクション名です。

データベースにフィールドを追加

[code lang=text]
oil g migration add_field_to_model field:type
[/code]

フィールドをDBに追加するコマンドです。fieldはフィールド名、modelはモデル名、typeは型です。例えば、usersというテーブルに長さ25のvarcharmail`というフィールドを追加したいときは

[code lang=text]
oil g migration add_mail_to_users mail:varchar[255]
[/code]

とすればDBにフィールドが追加されます。どうやら、モデルに自動的に追加はされないようなので、モデルのフィールド名が書かれている配列に手動でフィールド名を追加しましょう。(たぶんどっかに自動的に追加させる方法はあると思うので、調べてみます。)

モデルとコントローラ、ビューを一気に生成

[code lang=text]
oil g scaffold name field1:type field2:type field3:type
[/code]

ピッタリ使い道が合えば、かなり強力なコマンドです。nameはモデル名/コントローラ名、fieldはフィールド名、typeは型です。このコマンドを実行すると、一気にデータベースにデータを追加する・編集する・削除する・一覧で表示するという、いわば、ブログアプリケーションが一瞬で作れます。しかもデザインにはTwitterBootstrapが使われているので、そこそこの見た目に表示してくれています。

モデルをDBにマイグレート

[code lang=text]
oil r migrate
[/code]

oil g model系のコマンドを実行するとmigrateフォルダにphpファイルが生成されていきます。このコマンドはそのmigrateファイルを元にデータベースの構造を作っていきます。

[code lang=text]
oil r migrate:current
[/code]

とやれば、現在のバージョンのmigrateファイルをもとに、データベースを更新します。また、

[code lang=text]
oil r migrate –version=2
[/code]

とするとバージョンが2のファイルをもとにデータベースを更新します。

まとめ

FuelPHPを触り始めて約1ヶ月ほどですが、今のところ使っているのは以上です。oilコマンドは使いこなせるとかなり早く開発が進められそうなので、もっとしっかり勉強したほうがいいかもしれませんね。また、分かったことがあれば、書いて行きたいと思います。