Я пытаюсь выяснить, как лучше всего иметь шаблон спецификации в PHP, где спецификации могут (необязательно) быть преобразованы в PHP.
Я изучаю некоторые новые направления и проверяю, насколько хорошо они будут работать. Код и идеи все еще очень неясны в моей голове.
Минимальные интерфейсы будут такими:
interface IRepository {
public function get(ISpecification $specification);
}
interface ISpecification {
public function isSatisfiedBy($candidate);
}
Если репозиторий скрывает базу данных sql, спецификацию необходимо преобразовать в sql. Добавление метода ->toSQL() кажется случайным. Класс, который переводит спецификации, также является вариантом, но кажется, что для окончательного создания sql требуется много накладных расходов.
Идеи оценены.