【发布时间】:2011-06-18 03:19:15
【问题描述】:
扩展问题:我为什么要使用数据映射器/Db_Table_Row,因为 DbTable 能够处理数据操作的大部分基本任务。
我目前正在学习 ZF v1.11
对于数据库操作,我为每个表创建了 DbTable。例如,“users”表由 Application_Model_DbTable_Users 表示,其中没有其他代码。
在操作数据时,我可以使用:
<?php
$uTable = new Application_Model_DbTable_Users();
$newUid = $uTable->insert(array('name'=>'Old Name', 'email'=>''));
$user = $uTable->find($newUid)->current();
// Then I can use $user which is instance of Table_Row
$user->name = "New Name";
$user->email = "email@addr.com";
$user->save();
我的问题是,我什么时候需要定义一个行类(假设 Table_Row 在 ZF-Tutorials 中被称为 DataMapper)
// By, adding this to the DbTable class
protected $_rowClass = 'Application_Model_User';
为每个实体使用 Row 类有什么好处?谁能指出我的最佳做法。
【问题讨论】:
-
stackoverflow.com/questions/373054 - 给出了一个想法,发送电子邮件或更改密码逻辑可以在 Table Row 类中实现,这是特定于用户的。
标签: php database design-patterns zend-framework zend-db-table