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のフォーラムに問い合わせたら
クエリーが増えるためパフォーマンスが落ちるとのことでした。
https://fuelphp.com/forums/discussion/12580/orm-model-without-properties#Item_6
そのせいでパフォーマンスが落ちるとは思わないし、最悪そうであってもパフォーマンスチューニング
のときには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が不要ってのが今の結論なので、この時から通じるものもあるかと
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のフォーラムに問い合わせたら
クエリーが増えるためパフォーマンスが落ちるとのことでした。
https://fuelphp.com/forums/discussion/12580/orm-model-without-properties#Item_6
そのせいでパフォーマンスが落ちるとは思わないし、最悪そうであってもパフォーマンスチューニング
のときには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が不要ってのが今の結論なので、この時から通じるものもあるかと
登録日:
更新日:
by
プログラマーこまつ