在Zend框架快速入门 ,出现了从扩展模式的改变Zend_Db_Table_Abstract
将表数据网关模式。
就个人而言,我还没有与这种模式很多经验,我不断听到这应该最有可能被用来代替旧的方式。
从快速启动的简短例如:
老办法:
class Default_Model_Guestbook extends Zend_Db_Table_Abstract
{
protected $_name = 'tablename';
// do stuff
}
新方法:
// The actual model
class Default_Model_Guestbook
{
protected $_comment;
protected $_created;
protected $_poster;
// list continues with all columns
}
// Dbtable for this model
class Default_Model_DbTable_Guestbook extends Zend_Db_Table_Abstract
{
/** Table name */
protected $_name = 'guestbook';
}
// Mapper
class Default_Model_GuestbookMapper
{
public function save($model);
public function find($id, $model);
public function fetchAll();
}
从我缺乏这种风格的编程经验,我觉得很难把握,从后者的方式获得的实际利益; 据我所知,这种方法的方式隔开从实际的逻辑尽可能,理论上应该让到另一个数据库平台的转换更容易数据库。 可是,我真的没有看到我工作的任何项目发生这种情况。
这里几乎是我忽视的东西毫无疑问,所以我很想听听你的建议。
问题:
可能有人请给我为什么(或者),后者是更好的做法解释?
我应该从旧的方式切换到新的方式或仍然会有适当的理由与代表数据库表款坚持?
提前致谢。