0

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 はジェネリックをサポートしていないので、どうすればこの単純さを実現できるでしょうか?

4

1 に答える 1