私はPHPで実装している(概念的に)かなり単純なアプリケーション仕様を持っています。その大部分はプロジェクトデータの読み込み、表示、ユーザーによる編集(潜在的にセクションの追加)データベースに戻ります。OOPHPのデュアルロード/保存オブジェクト - 不要な重複?
私はthuslyそれに近づい上で計画しています:
は、作成時にIDを取る基本的な「ロード」オブジェクト(例えばProjectLoad、FormLoad)のセットを持つデータベースを照会し、と自分自身を埋めますフェッチされたデータ。これらのオブジェクトを使用してページ要素を埋めることができます。
配列を取って(ページが送信されたときに返される)「保存」オブジェクト(例:ProjectSave、FormSave)をもう1組持ち、データベースに
INSERT\UPDATE
操作を実行します。この不必要な重複は
ですか?私はただOOPHPを扱っています。これまで見てきたアドバイスのすべては、すべてのもの(オブジェクト、メソッドなど)を可能な限りフォーカスし、単一目的にすることをお勧めしているようです。これはその基準を満たしているようですが、より良い方法がありますか?
あなたの頭の中で定義しようとしてきたことが、あなたが得たよりも適切な名前と深い探求を持っていることを知ることは、常に素晴らしいことです。 データマッパーは私が必要としているように見えますが、悲しいことに、PHPはオブジェクトを永続化しないため、すべての最後にsave($ project)を呼び出すことはできません。 Mapperスーパークラスに一対の静的メソッドを配置し、それらを使用してIDまたは配列からロードを呼び出すことができます。これはhttp://stackoverflow.com/a/1701337/3171734とよく似ています。 –
そして、私は将来の参照のためにCQRSリンクをブックマークします。このサイトはCRUDで手に入れることができるはずですが、ポインタはとても感謝しています。 –
静的メソッドと変数の使用を強くお勧めします。前者はグローバルな名前空間を持つ関数、後者は栄光のあるグローバル関数です。 datamapper-routeに行く場合は、エンティティごとに1つのマッパーを用意する必要があります。プロジェクト用に別のマッパー、ユーザー用に別々のマッパーを用意する必要があります。 –