CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

FuelPHPのOilコマンドを使ったソース生成がものすごく便利です。

コマンドラインからOilコマンドを実行するだけで、Model、ViewやControllerクラスを自動生成してくれます。
また、Model生成時には、DBに定義したテーブルをcreateしてくれたり、cronジョブを実行してくれたりと、MVCフレームワーク特有のめんどくさい準備作業を自動化してくれます。

以下、今回確認した環境です。

  • Windows 7
  • xampp 1.8.2
  • FuelPHP 1.7.2

OilでModelを作成

コマンドプロンプトを起動して、FuelPHPをインストールしたディレクトリに移動します。
(oilファイルがあるディレクトリです)

cd C:xxxfuelphp

ここで、name1~name3までのカラムを持つテーブル「sample」用のModelを作成します。

php oil g model sample name1:text name2:text name3:text

実行すると「…fuelappclassesmodel」に「sample.php」が自動生成されます。

class Model_Sample extends OrmModel
{
	protected static $_properties = array(
		'id',
		'name1',
		'name2',
		'name3',
		'created_at',
		'updated_at',
	);

	protected static $_observers = array(
		'OrmObserver_CreatedAt' => array(
			'events' => array('before_insert'),
			'mysql_timestamp' => false,
		),
		'OrmObserver_UpdatedAt' => array(
			'events' => array('before_update'),
			'mysql_timestamp' => false,
		),
	);

	protected static $_table_name = 'samples';

}

モデルに「id」は必須のようで、自動で付加されます。
また、レコードの作成日時、更新日時用に「created_at」「updated_at」も付加されます。

さらにDBの設定が完了していることを前提に以下のコマンドを実行すると、上記の設定でDBにテーブルがcreateされます。

php oil r migrate

以下のようにさまざまなカラム設定も可能です。

php oil g model sample name1:int:primarykey name2:varchar[8]:notnull name3:varchar[8]

OilでControllerを作成

フォーム画面を作成する場合に、たいては入力・確認・完了の3画面を作成しますが、そのコントローラーを作成してみます。

php oil g controller form input confirm complete

実行すると「…fuelappclassescontroller」に「form.php」が自動生成されます。

class Controller_Form extends Controller_Template
{

	public function action_input()
	{
		$data["subnav"] = array('input'=> 'active' );
		$this->template->title = 'Form » Input';
		$this->template->content = View::forge('form/input', $data);
	}

	public function action_confirm()
	{
		$data["subnav"] = array('confirm'=> 'active' );
		$this->template->title = 'Form » Confirm';
		$this->template->content = View::forge('form/confirm', $data);
	}

	public function action_complete()
	{
		$data["subnav"] = array('complete'=> 'active' );
		$this->template->title = 'Form » Complete';
		$this->template->content = View::forge('form/complete', $data);
	}

}

同時に以下のビューファイルも生成されます。

...fuelappviewsforminput.php
...fuelappviewsformconfirm.php
...fuelappviewsformcomplete.php

MVCフレームワークでは、これらファイルやクラスを用意するところから、エラーとの戦いが始まるイメージですが、これらを補助してくれるコマンドが用意されてるのはたいへん助かりますね。

他にも便利な機能があるようのでいろいろ試してみたいと思います。

このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search