ну вот такой код из статьи
PHP:
namespace Infrastructure;
final class MySqlClientBuilder implements ClientBuilder
{
private $connection;
public function __construct(Connection $connection);
public function buildClient()
{
$this->connection
->insert('clients_table', [
$this->name,
$this->corporateForm,
$this->generalManager->getId(),
$this->address
]);
$id = $this->connection->lastInsertId();
return new Client(
$id,
$this->name,
$this->corporateForm,
$this->generalManager,
$this->address
);
}
}
может с какой-то точки зрения и не сохраняет, но после него запись появляется в базе. А если не вызывая $repository->save($entity); мы уже можем получить её из $repository->get(), то почему это не сохранение?
ну а если это сохранение вне репы, то это
сущность в непонятном состоянии (все ли мы сохраняем в buildClient или только нужные для получение id поля?), если до $repository->save() мы не дошли (упали по дороге)
размазанный по проекту код работы с хранилищем/базой - поправили в репе новое обязательное поле, перестали создаваться id
управление кэшем (если оно реализовано в репе) или дублируется или в билдере есть еще и зависимость от репы для управления кешем или...
В общем, схема и все её преимущества пока не очень понятны (