В одной теме видел пример репозитория, в котором происходит выборка из БД.
Так вот, насколько я понял, репозиторий не должен в принципе ничего знать о том, какое хранилище используется.
Посему пришёл к таким мыслям, пример ниже:
Есть у нас репозиторий PostRepository, он у нас находится в доменном слое
Код: Выделить всё
namespace Domain\Reposiroties;
use Domain\Condition;
class PostRepository implements RepositoryInterface
{
protected $storage;
public function __construct(StorageInterface $storage)
{
$this->storage = $storage;
}
public function get(Condition $condition)
{
return $this->storage->find($condition);
}
...
}
Код: Выделить всё
namespace Infrastructure\Storages\Post
class MySQLStorage implements StorageInterface
{
...
public function find(Condition $condition)
{
//Производим уже тут выборку
}
public function insert()
{
// Производим вставку
}
...
}