0

重複の可能性:
PHP MVC - JSON をモデル データに変換する

バニラPHP、PHPライブラリ、またはKohanaを使用して、jsonでエンコードされたオブジェクトからKohana MVCモデルオブジェクトに情報を簡単にマーシャリングする簡単な方法はありますか? json_encoded オブジェクトにはモデル オブジェクトと同じフィールドがありますが、機能はありません。このばかげたダンスを回避する一般的に受け入れられている方法はありますか?

次のようなコードでデータを移動するコードを常に書いているように感じます。

$array = json_decode(returnsObject());
$model = Model::factory("model");
$model->field1 = $array['field1'];
$model->field2 = $array['field2'];
.....

今明らかに私はこれをメソッドに持っていますが、これを行うためのより良い方法がないというのは奇妙に思えます。

4

1 に答える 1

2

これは簡単な方法です。

MVC デザイン パターンのコントローラーは、ユーザーの要求からデータを抽出し、それをモデル レイヤーと現在のビューに渡すことのみを担当します。あなたのコード例は、実際にはコントローラーのアクションのほぼ受け入れ可能な実装です...もちろん、ファクトリメソッドのアンチパターンを無視し、ドメインオブジェクトを「モデル」として参照する場合です。

クラスを拡張して、返す前に JSON 文字列からデータを抽出するメソッドを追加することもできますが、単一責任の原則Requestに違反します。

于 2012-10-17T20:43:36.007 に答える