Laravel でリポジトリ パターンを実装していますが、非常に面倒です。たとえば、製品があるとします。次に、ProductRepository インターフェイスを作成し、次にそのインターフェイスを実装する ProductRepository クラスを作成する必要があります。現在、ProductRepository には次のような非常に一般的なメソッドがいくつかあります。
- 検索すべて
- お店
- アップデート
- 消去
そして今、私は材料に対して同じことをしなければなりません. これらすべてのジェネリック メソッドを使用して ModelRepository インターフェイスを作成し、Java Generics に似たジェネリック データ型 (つまり、モデル) を渡すことでそれを実装できればいいのですが。
<?php
interface ModelRepositoryInterface<T> {
function retrieveAll(): Collection<T>;
function store(T $item);
function update(int $id, T $data);
function delete(int $id);
}
しかし、php はジェネリックをサポートしていないので、どうすればこの単純さを実現できるでしょうか?