我目前正在开发一个MVC应用程序框架,我已经就如何构造我的模型层提出了一些建议。
模型的构造使得每个模型都映射到该应用程序的数据库中的一个表中,因此一个典型的应用程序将具有
并且每个文件都将被映射到名为PHP的文件中,比如app/models/configuration.php。
现在我遇到的问题是创建父数据库类以便能够处理特定的表数据,例如:
class PDOModel
{
public function __construct()
{
$this->__Communicator = Registry::getPDOInstance();
}
public function getSingle($id)
{
return /*Row*/;
}
/*Etc*/
}然后类似于应用程序模型的
class Model_Topic extends PDOModel
{
protected $__id_column = 'id';
}然后,在我的控制器内,我可以这样使用:
$Topic = $this->model->topic->get(22);但是我也想考虑一下自动连接表,是否有一些简单的轻量级库已经过测试并符合我的要求。
任何帮助都将不胜感激。
发布于 2011-05-16 22:24:28
您的基模型类不应该从数据库访问类继承。相反,它应该使用数据库类(或者mapper,谁说它必须始终是数据库?)然后提供ORM方法(get、insert、update等)。
正如其他人所发布的,您应该使用许多优秀的预先构建的解决方案之一。至于寻找一个轻量级的ORM,其他人也曾问过这个问题。下面是其中一个问题的链接:
https://stackoverflow.com/questions/1995834/looking-a-lightweight-php-orm
发布于 2011-05-16 22:18:31
我所看到的最接近的东西是Zend_Db,它在PDO之上实现了表和行网关。它支持连接相关表和其他不支持的内容。
通常情况下,你想要的不是所有的“轻量级”,而是一种完全的ORM。就我个人而言,如果我是你,我会用一个像样的ORM。推动>= 1.5、原则1.2或Doctrine2。
https://stackoverflow.com/questions/6023952
复制相似问题