各フレームワークで以下のようにやり方が異なってますが、どれが一番洗練されているでしょうか?
思いつきでも結構ですので、その理由もあわせて教えて下さい。
■CakePHP
$this->Model->save(array('hoge'=>'入力データ')); ←seveメソッドに引数で渡す
■symfony
$model = new Model();
$model->setHoge('入力データ'); ←メソッドに入力
$model->save();
■Yii(アクティブレコード使用時)
$model = new Model();
$model->hoge = '入力データ'; ←クラスのプロパティに入力
$model->save();
また、上記とは逆にモデルからデータを取得する方法が、
一番洗練されていると思うものがありましたら教えて頂けると助かります。
よろしくお願いします。
CakePHPが一番使い慣れているので、バイアスがかかっています。あと、洗練されているというよりは、使い勝手がよいだろうなという順序です。
1.CakePHP
2.Symfony
3.Yii
他の2つ比べてformからのデータの受け取りとの整合性がよい気がします。
大抵の場合は、フレームワークが整形化して、Controllerのdataフィールドに格納してくれるので、Controller内では、
$this->Model->save($this->data);
で済んでしまうのが一番の魅力でしょう。
SymfonyとYiiとそれほど変わらない気はしますが、フックかけたり何なりが、Symfonyの方がうまいこといけそうです。
あとは、CakePHP以外は深くは知らないので、コメントしませんが、関連テーブルなんかの扱い方は大きく差がでるところかと思います。
単純に値を格納するだけならCakeがよさそうですね。
フックに関しては仰る通り、YiiよりもSymfonyの方がやりやすそうですね。
IDEでメソッド入力する際に自動補完してくれて楽ちんだと思いますし。
回答有り難うございます。
symfony
CakePHP
Yii
でしょう。
個々のSetterをオーバーライド出来るところが
symfonyの便利な部分じゃないでしょうか。
formからのデータ受取もfromArrayで一発ですし。
これが出来ないと個々のコントローラでデータを加工するハメになります・・。
「MVCとして洗練されている」というのは
「MVCに忠実に機能している」というのと同義かと思います。
そう考えるとモデルのドメインを幅広く理解しているsymfonyが
洗練されていると考えるのが妥当かと思います。
symfonyにはfromArrayなんてものがあるんですね、シラナカッタ。
なるほど。回答有り難うございます。参考にさせて頂きます。
回答有り難うございます。
参考にさせて頂きます。