0

根据 Zend 快速入门指南,我需要三个类(模型、映射器类和表网关类)来实现表数据网关模式。但这是一个好方法吗?

现在这就是我实现模式的方式。

class Application_Model_Person(){
    private $_name;

    public function getName();
    public function setName($name);
}   

class Application_Model_PersonMapper extends Zend_Db_Table_Abstract {

      public function fetch();
      public function search();
      public function save(Application_Model_Person $person);
      public function delete();

}

所以我有一个包含所有 getter/setter 方法的模型类和另一个扩展 Zend_Db_Table_Abstract 类并执行所有 crud 操作的类。我喜欢这种方法,因为它减少了类的数量并且易于遵循。但这是一种正确的做法吗?

另外,如果我使用 Zend 快速入门指南中的方法,我将获得什么优势?

4

1 回答 1

2

这实际上取决于您的项目的大小。ZF 就是我所说的“企业就绪”,即构建大型 Web 应用程序。在我看来并遵循这些模式,我几乎可以无限扩展。然而,对于许多较小的项目,这可能是多余的。

我在您的示例中看到的唯一问题是将映射器扩展到遵循常见模式的 DbTable 是错误的。对于较小的项目,您可以拥有模型(外部--应用程序视图)并直接访问您的 DbTable 类(内部--Db 网关)并跳过映射器。

如果以后出于某种原因您决定需要某些表的映射器,您应该能够相当容易地实现它们。

于 2013-02-23T16:54:58.120 回答