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

时间:2011-07-07 03:09:26

标签: php mysql activerecord orm

我不确定我在做什么叫做ORM或Active Record Pattern。

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

的方法
  • 找到
  • findBy
  • findAllBy
  • 插入
  • 更新
  • 删除
  • Getters&通过魔术方法设置列数据(例如名称,标题等)

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

  • 依赖注入 - 听起来很复杂......
  • 使用全局变量,期望设置这些类? - 听起来不对
  • 是否有Entity继承的基类包含所有数据库连接信息? <听起来不对

也许我做错了?我愿意接受任何想法,最好是一开始就很简单。我想为一个开始创建一个简单的框架(例如,不使用Doctrine),它将为我提供这样的框架如何工作的基础。此外,如果它是一个小项目,使用大框架可能会使事情过于复杂

1 个答案:

答案 0 :(得分:0)

关于你的尝试,真的很简单。其复杂的事情: - )

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

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

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