PHPのフレームワークにおいてMVCのC(コントローラー)からM(モデル)にデータを渡す際に、

各フレームワークで以下のようにやり方が異なってますが、どれが一番洗練されているでしょうか?
思いつきでも結構ですので、その理由もあわせて教えて下さい。

■CakePHP
$this->Model->save(array('hoge'=>'入力データ')); ←seveメソッドに引数で渡す

■symfony
$model = new Model();
$model->setHoge('入力データ'); ←メソッドに入力
$model->save();

■Yii(アクティブレコード使用時)
$model = new Model();
$model->hoge = '入力データ'; ←クラスのプロパティに入力
$model->save();

また、上記とは逆にモデルからデータを取得する方法が、
一番洗練されていると思うものがありましたら教えて頂けると助かります。
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2009/05/21 17:28:13
  • 終了:2009/05/28 17:30:02

回答(3件)

id:AZUY No.1

AZUY回答回数343ベストアンサー獲得回数122009/05/21 19:34:37

ポイント27pt

1.symfony

2.Yii

3.CakePHP

単に書き方のみを比べて、オブジェクト指向らしい感じなのを上位にした。

id:xxmasaxx

回答有り難うございます。

参考にさせて頂きます。

2009/05/21 22:35:55
id:tdoi No.2

tdoi回答回数174ベストアンサー獲得回数752009/05/21 23:13:37

ポイント27pt

CakePHPが一番使い慣れているので、バイアスがかかっています。あと、洗練されているというよりは、使い勝手がよいだろうなという順序です。

1.CakePHP

2.Symfony

3.Yii

他の2つ比べてformからのデータの受け取りとの整合性がよい気がします。

大抵の場合は、フレームワークが整形化して、Controllerのdataフィールドに格納してくれるので、Controller内では、

$this->Model->save($this->data);

で済んでしまうのが一番の魅力でしょう。

SymfonyとYiiとそれほど変わらない気はしますが、フックかけたり何なりが、Symfonyの方がうまいこといけそうです。

あとは、CakePHP以外は深くは知らないので、コメントしませんが、関連テーブルなんかの扱い方は大きく差がでるところかと思います。

id:xxmasaxx

単純に値を格納するだけならCakeがよさそうですね。

フックに関しては仰る通り、YiiよりもSymfonyの方がやりやすそうですね。

IDEでメソッド入力する際に自動補完してくれて楽ちんだと思いますし。

回答有り難うございます。

2009/05/21 23:52:36
id:krese No.3

krese回答回数20ベストアンサー獲得回数42009/05/22 10:42:02

ポイント26pt

symfony

CakePHP

Yii

でしょう。


個々のSetterをオーバーライド出来るところが

symfonyの便利な部分じゃないでしょうか。

formからのデータ受取もfromArrayで一発ですし。

これが出来ないと個々のコントローラでデータを加工するハメになります・・。


「MVCとして洗練されている」というのは

「MVCに忠実に機能している」というのと同義かと思います。

そう考えるとモデルのドメインを幅広く理解しているsymfonyが

洗練されていると考えるのが妥当かと思います。

id:xxmasaxx

symfonyにはfromArrayなんてものがあるんですね、シラナカッタ。

なるほど。回答有り難うございます。参考にさせて頂きます。

2009/05/22 23:29:23

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません