私は、仕様を (オプションで) PHP に変換できる仕様パターンを PHP で作成する最善の方法を見つけようとしています。
私はいくつかの新しい方向性を模索しており、それらがどれだけうまく機能するかをテストしています. コードとアイデアは、私の頭の中ではまだ非常に不明確です。
最小限のインターフェイスは次のようになります。
interface IRepository {
public function get(ISpecification $specification);
}
interface ISpecification {
public function isSatisfiedBy($candidate);
}
リポジトリが sql データベースを隠している場合、仕様を sql に変換する必要があります。->toSQL() メソッドの追加はアドホックに思えます。仕様を変換するクラスもオプションですが、最終的に sql を生成するのはかなりのオーバーヘッドのようです。
アイデアを歓迎します。