絶対完全無料ツールの紹介

エンジニア目線のブログです

kohanaとsymfonyを比較しながらfuelphpでアンケートサイトを作ってみた。その1

とりあえず完成

https://github.com/komi2013/review

 

バージョン
symfony1.4,kohana3.2,fuelphp1.6

まずはmodelの意義、作成方法

symfonyはテーブルを設定してから
php symfony doctrine:build-model等のコマンドで
モデルを作りだす事ができる。しかし途中で
テーブルの変更があったらこのコマンドを使う時
注意しないといけないから怖い。


fuelphpは手動でテーブルの定義をしないといけない。
php symfony doctrine:build-model等のコマンドがあるかも、、、
あったらごめんなさい。)

kohanaは動的にテーブル情報を取得するため定義する必要がない。

この点ではkohana1位、symfony2位、fuelphp3位
だと思います。ちなみにfuelphpのフォーラムに問い合わせたら
クエリーが増えるためパフォーマンスが落ちるとのことでした。

fuelphp.com



そのせいでパフォーマンスが落ちるとは思わないし、最悪そうであってもパフォーマンスチューニング
のときにはkohanaでも$_propertiesで定義できることができます。


バリデーション

symfonyはバリデーションクラスがありmodelとは別に作りこまなくてはならない

fuelphpはmodel上でテーブルの定義をするときにフィールドで判断できるバリデーションは
model上で定義できる。

kohanaはfuelphpとほぼ同じつまりmodelにはバリデーションに
必要なカラムだけを記述するのですごく楽。

fuelphp
class Model_DtUsr extends \Orm\Model
{
protected static $_observers = array(
'Orm\Observer_CreatedAt' => array('before_insert'),
'Orm\Observer_UpdatedAt' => array('before_save'),
'Orm\Observer_Validation' => array('before_save'),
);

protected static $_properties = array(
'id',
'name' => array(
'data_type' => 'varchar',
// 'label' => 'Article Name',
'validation' => array('required', 'min_length' => array(3), 'max_length' => array(20)),
// 'form' => array('type' => 'text'),
// 'default' => '',
),
'provider' => array(
'default' => 0,
),
'pv_u_id' => array(
'default' => '',
),
'img' => array(
'default' => '',
),
// 'updated_at',
);
public $col = array(
'name' => '',
'provider' => 0,
'pv_u_id' => 0,
'img' => '',
// 'updated_at',
);

protected static $_table_name = 'dt_usr';


}

kohana

class Model_Usr extends ORM {

protected $_table_name = 'dt_usr';
//protected $_primary_key = 'id';
public function rules()
{
return array(
'pv_u_id' => array(
array('not_empty'),
array('digit'),
),
);
}
}

開発途中でDBの設計なりテーブルのカラムが変わる事があると思うのでkohanaが1番かと思います。
個人的な見解ですので、異論反論があれば是非コメントお願いします。

2013.09.30

今みるとパフォーマンスは下がるかな、確かに

そもそもModelが不要ってのが今の結論なので、この時から通じるものもあるかと