私はより多くのOOPHPに取り組み始めており、そのオブジェクトのテストも作成しています。私の主な質問は、Blog_Post
オブジェクトがあり、それを呼び出す$post->setCategory( 'Foo' )
場合、データベースに直接保存する必要があるかどうかです。
私が尋ねる理由はユニットテストのためです、それは私がテストしているものではないので、私はしばしばこれらの種類のもののためにDBを使用したくありません。
私は人々が次のようなことをすることを提案するのを見ました
function __construct( PDO $db )
使用するデータベースオブジェクトを渡し、テスト時にモックを使用します。ただし、Blog_Postクラスを呼び出しているものによって、データベースオブジェクトを常にインスタンス化するというアイデアは本当に好きではありません。
これは基本的にオブジェクト指向アプローチを持たないWordPressの範囲内です-私の現在のBlog_Postでは、setterメソッドはDBを呼び出すだけです(グローバル$ wpdb !!(私は知っています!))。
本当に知りたかったのですが、このようなもので最も抵抗の少ない経路である一般的なパターンは何ですか。Blog_Postはそれ自体を書くだけでしょうか、それとも「save()」メソッドを使用して、設定されたすべてのプロパティを実際にDBにプッシュするのでしょうか。または、セッターを呼び出す前に、オブジェクト「setSaveToDB(false)」にフラグを設定することもできます。
ありがとう、これが理にかなっていることを願っています!