2
我有一个简单的问题。我正在使用Zend Framework 1,并使用Data Mapper。这里是我的代码:数据映射器依赖关系
<?php
// application/model/Pos.php
class Application_Model_Pos extends Zend_Db_Table_Abstract
{
protected $_name = 'pos';
}
// application/model/MapperAbstract.php
abstract class Application_Model_MapperAbstract
{
private $_dbTable;
public function __construct(Zend_Db_Table_Abstract $dbTable)
{
$this->_dbTable = $dbTable;
}
public function findById($id)
{
$select = $this->_dbTable()->select()->where('id = ?', $id)->limit(1);
$row = $this->_dbTable()->fetchAll($select)->toArray();
if(!empty($row))
{
$this->_createEntity($row);
}
}
protected function _createEntity(array $row);
}
// application/model/PosMapper.php
class Application_Model_PosMapper extends Application_Model_MapperAbstract
{
public function __construct()
{
parent::__construct(new Application_Model_Pos());
}
protected function _createEntity(array $row)
{
return new Sb_Pos($row['name']);
}
// application/library/Sb/Pos.php
class Sb_Pos
{
public function __construct($name)
{
$this->_name = $name;
}
}
?>
有了这个代码在你的脑海里,我应该在哪里处理表依赖关系?映射者是否应该知道另一个映射器?我需要服务层吗?
感谢您的帮助。
我想指向你http://www.survivethedeepend.com,第9章关于使用mappers进行lazyloading。但在这个特定的网站似乎是下降。 – 2013-03-02 19:59:02