Zend框架的DB组件推荐实践?

4
首先提供一些背景信息:
我正在使用Zend Framework编写PHP项目,我有一些与客户过去会议中的实体关系图。数据库模式是为MySQL编写的,现在是时候在Zend中实现我的模型了。我对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?
1个回答

0
我能给使用Zend DB的最佳实践建议是...不要使用它。这些组件非常基础,帮助不大。如果可以的话,最好使用Doctrine,它更好用。

谢谢你的建议,我之前也看过Doctrine,但好像需要花费一些时间来学习它。你有什么资源可以推荐给我吗?(除了他们的项目页面) - alxbl
不,项目文档是我唯一使用的资源。它非常好。 - Maxence

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接