使用Zend Framework DB组件的推荐实践?

时间:2011-06-25 20:07:13

标签: php zend-framework zend-db

首先是一些背景信息:

我正在使用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一段时间后,希望找到如何最有效地组织模型的指针,我遇到了yet another different recommended solution.

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

我应该使用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?

1 个答案:

答案 0 :(得分:0)

我可以向Zend DB推荐的最佳做法是......不要使用它。这些组件非常基础,并没有多大帮助。如果可以,请使用Doctrine,这样做要好得多。