如何在没有ORM的情况下坚持实体?

时间:2015-09-29 03:24:56

标签: php database orm repository persistence

我试图将域模型持久保存到数据库而不使用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"));

当我创建新的 aModel 并向其添加新项目时,如何检测未保存的'物品并坚持下去?

我只能考虑在类中添加 isSaved 方法,并在aModel中循环 $ items 变量。

不使用反射,最好的方法是什么?

0 个答案:

没有答案