Php Zend DB:在表类和行类之间代理?

Php Zend DB:在表类和行类之间代理?,php,zend-framework,Php,Zend Framework,Zend DB表和Zend DB行之间是否存在代理?例如,如果我重写DB_Table delete()方法以仅标记已删除的记录,我是否需要在DB_Table_行中执行相同的操作?还是行代理到表 如果代理已就位,它将在哪个方向发生?(表的行代理?)?(行删除()和保存()-to-table删除()、更新()和插入()?) 我意识到我可以自己测试一下,但很可能你会更快(如果你还不知道答案的话…) 谢谢 编辑 这个问题的原因是我正在开发一些模型,其中将包括ACL。因为我在控制器中也有ACL,所以我计划

Zend DB表和Zend DB行之间是否存在代理?例如,如果我重写DB_Table delete()方法以仅标记已删除的记录,我是否需要在DB_Table_行中执行相同的操作?还是行代理到表

如果代理已就位,它将在哪个方向发生?(表的行代理?)?(行删除()和保存()-to-table删除()、更新()和插入()?)

我意识到我可以自己测试一下,但很可能你会更快(如果你还不知道答案的话…)

谢谢

编辑

这个问题的原因是我正在开发一些模型,其中将包括ACL。因为我在控制器中也有ACL,所以我计划只覆盖DB类中选定的方法。例如,我希望确保成员只能删除自己的记录。(我想我需要使用ACL断言来实现这一点)

因此,我问上面的问题是为了确定是否必须重写方法对(即表类中的一个,行类中的一个),或者是否可以只重写一个。然而,从回答来看,我现在想知道我是否问错了问题

有经验的开发人员如何处理这种情况?也许您选择只使用一个delete方法(例如,从Row类)。(更新方法也是如此)。如果是这样,您是否覆盖表类delete以防止意外使用


我很好奇。。。谢谢…

据我所知,
Zend_DB_行
中的delete方法采用了
Zend_DB_表
中的delete方法。因此,如果覆盖
Zend\u DB\u表
中的delete,则应通过
Zend\u DB\u行
中的delete查看


希望这有帮助。无论如何,如果不是这样,请告诉我。

Zend\u Db\u Table\u Row\u Abstract第627行

    /**
     * Execute the DELETE (this may throw an exception)
     */
    $result = $this->_getTable()->delete($where);
获取表并执行delete方法

Zend_Db_表_摘要第1182行

    return $this->_db->delete($tableSpec, $where);
这将调用Zend_Db_适配器_Abstract::delete()


在我看来,最好在适配器类中重写delete方法。这将确保无论删除请求来自何处,都将执行您的自定义删除逻辑

假设它使用的是Zend_Db_表的实例,而不是静态调用。注意:这是推测。更新和插入也是如此。这实际上取决于您是否计划使用多个模型来更新相同的信息。在模型或适配器中。使用adepter的缺点是,如果为不同的表定制逻辑,那么适配器my将很难维护。在model类中执行此操作的缺点是,您必须通过该模型或该模型创建的table_行执行CUD操作。这可能根本不是一个缺点。