Как сохранить сущность без ORM?

Я пытаюсь сохранить модель домена в БД без использования ORM просто для удовольствия.

Сохранять свойства довольно легко, но мне трудно сохранять коллекцию.

Допустим, у меня есть следующие два объекта.

class aModel
{
private $items = [];

public function __construct($id, $name, array $items = [])
{
$this->id = $id;
$this->name = $name;
$this->items = $items;
}

public function getId()
{
return $this->id;
}

public function getName()
{
return $this->name;
}

public function addItem(Item $item)
{
$this->items[] = $item;
}
}

class aDBRepository
{
public function persist(aModel $aModel)
{
$attributes = [
'id' => $aModel->getId(),
'name' => $aModel->getName()
];

$this->table->insert($attributes);
}
}

// Код

$aModel = new aModel("test id", "a name");
$aModel->addItem(new Item("id", "name"));

Когда я создаю новый модель и добавить новый элемент к нему, как я могу обнаружить «несохраненные» элементы и сохранить их?

Я могу только думать о добавлении isSaved метод в Вещь класс и цикл $ пункты переменная в модели.

Не используя рефлексию, как лучше?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]