创建一个简单的“ORM/ActiveRecord”模式

Posted

技术标签:

【中文标题】创建一个简单的“ORM/ActiveRecord”模式【英文标题】:Creating a Simple "ORM/ActiveRecord" Pattern 【发布时间】:2011-07-07 03:09:25 【问题描述】:

我不确定我在做什么是所谓的 ORM 或 Active Record 模式。

我有一个实体/数据库表将继承的Entity 基类。这些类将具有类似的方法

找到 查找人 findAllBy 插入 更新 删除 通过魔术方法获取列数据(例如名称、标题等)的 Getter 和 Setter

现在的问题是如何创建数据库连接?

依赖注入 - 听起来很复杂... 使用全局变量,这些类将被设置? - 听起来不对 有一个Entity 继承的包含所有数据库连接信息的基类? - 听起来也不对

也许我做错了?我对任何想法持开放态度,最好是简单的开始。我想为开始创建一个简单的框架(例如不使用 Doctrine),它将为我提供有关此类框架如何工作的基础。此外,如果它是一个小项目,使用大框架可能会使事情过于复杂

【问题讨论】:

【参考方案1】:

关于您的尝试并没有那么简单。它很复杂:-)

您需要有某种基本实体管理器和/或表类,它们通常保存对数据库连接的引用(或某种包装它的对象)。然后,当调用 savedelete 方法时,所有实体将自己传递给管理器,管理器将计算出修改数据库所需的查询。

例如,您可以注入此管理器,也可以将其设为单例并让您的类在实例化时获取它。

如果我是你,我会查看php Objects Patterns and Practices by Matt Zandstra。它通过一些基本的实现示例进入所有这些模式。

【讨论】:

以上是关于创建一个简单的“ORM/ActiveRecord”模式的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个简单的自定义视图?

创建一个非常简单的链表

创建一个简单的银行程序包.........未完善,待续

4)创建一个简单页面

Android 以编程方式创建一个简单的菜单

创建一个简单的模板控件。有问题