推荐使用 Zend Framework 的数据库组件的实践?



这里首先有一点上下文:

我正在使用Zend Framework用PHP编写一个项目,我有一些过去与客户会面时的E/R图。数据库模式是为MySQL编写的,现在是时候在Zend中实现我的模型了。我是Zend的新手,所以我不知道如何开始很好地编写这段代码。

在阅读他们的文档时,我注意到的第一件事是,快速指南使用了数据网关模式,但他们的Zend_DB参考页面没有。

// Data Gateway Sample
// <application/models/UserMapper.php>
class Application_Model_UserMapper()
{
    // ... Methods to read/write from DB
}
// <application/models/DbTable/Users.php>
class Application_Model_DbTable_Users
{
    // Relationship infromation etc.
} 
// <application/models/User.php>
class Application_Model_User
{
    // At last, model specific data
    // using UserMapper->find($id, $model);
}

在浏览了stackoverflow一段时间,希望能找到如何最有效地组织模型的指针后,我发现了另一个不同的推荐解决方案。

现在,上面链接的解决方案看起来非常干净,但在我开始写代码之前,它仍然在我的脑海中留下了一个问题:

我应该使用Row_Abstract子类来存储数据模型,还是应该制作单独的模型,这些模型除了存储检索到的数据之外没有其他用途

后一个看起来像是重复的工作(Model_DbTable、Model、Mapper、[Row?])

// What I have in mind
 // <application/models/DbTable/Users.php>
class Application_Model_DbTable_Users
{
    // Relationship infromation etc.
}
// <application/models/User.php
class Application_Model_User extends Zend_Db_Table_Row_Abstract
{
    // Model stuff here
    // Relationship fetch helpers here
    // ...?
}
// Perhaps a Rowset_Abstract class if it is ever needed?

我可以推荐使用Zend DB的最佳实践是。。。不要用它。这些组件很基本,没有多大帮助。如果可以的话,可以使用条令,这会更好。

最新更新