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