首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PDO创建模型层

使用PDO创建模型层
EN

Stack Overflow用户
提问于 2011-05-16 22:01:22
回答 2查看 3.1K关注 0票数 3

我目前正在开发一个MVC应用程序框架,我已经就如何构造我的模型层提出了一些建议。

模型的构造使得每个模型都映射到该应用程序的数据库中的一个表中,因此一个典型的应用程序将具有

  • Configuration
  • Topics
  • Forums

并且每个文件都将被映射到名为PHP的文件中,比如app/models/configuration.php

现在我遇到的问题是创建父数据库类以便能够处理特定的表数据,例如:

代码语言:javascript
运行
复制
class PDOModel
{
    public function __construct()
    {
        $this->__Communicator = Registry::getPDOInstance();
    }

    public function getSingle($id)
    {
         return /*Row*/;
    }

    /*Etc*/
}

然后类似于应用程序模型的

代码语言:javascript
运行
复制
class Model_Topic extends PDOModel
{
    protected $__id_column = 'id';
}

然后,在我的控制器内,我可以这样使用:

代码语言:javascript
运行
复制
$Topic = $this->model->topic->get(22);

但是我也想考虑一下自动连接表,是否有一些简单的轻量级库已经过测试并符合我的要求。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-16 22:24:28

您的基模型类不应该从数据库访问类继承。相反,它应该使用数据库类(或者mapper,谁说它必须始终是数据库?)然后提供ORM方法(get、insert、update等)。

正如其他人所发布的,您应该使用许多优秀的预先构建的解决方案之一。至于寻找一个轻量级的ORM,其他人也曾问过这个问题。下面是其中一个问题的链接:

https://stackoverflow.com/questions/1995834/looking-a-lightweight-php-orm

票数 5
EN

Stack Overflow用户

发布于 2011-05-16 22:18:31

我所看到的最接近的东西是Zend_Db,它在PDO之上实现了表和行网关。它支持连接相关表和其他不支持的内容。

通常情况下,你想要的不是所有的“轻量级”,而是一种完全的ORM。就我个人而言,如果我是你,我会用一个像样的ORM。推动>= 1.5、原则1.2或Doctrine2。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6023952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档