人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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();

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

●質問者: xxmasaxx
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CakePHP hoge Model MVC PHP
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● AZUY
●27ポイント

1.symfony

2.Yii

3.CakePHP

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

◎質問者からの返答

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

参考にさせて頂きます。


2 ● tdoi
●27ポイント

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でメソッド入力する際に自動補完してくれて楽ちんだと思いますし。

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


3 ● krese
●26ポイント

symfony

CakePHP

Yii

でしょう。


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

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

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

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


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

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

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

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ