Php 在Zend框架中处理连接的最佳方法?

Php 在Zend框架中处理连接的最佳方法?,php,zend-framework,oop,coding-style,Php,Zend Framework,Oop,Coding Style,这更像是一个设计问题。 我知道有两种方法可以在Zend框架中使用连接 使用Zend表实例(其Select obj)处理它 使用Zend Db实例(其Select obj)处理它 在第一种方法中,我觉得很奇怪-某些表也必须处理其他表,这不是很好,很混乱,至少当我读取方法名getData()时-我假设它处理自己的数据 第二个更好,您可以使用一些类作为服务—NodeService,它将处理表node和node_的转换,但也会产生一个问题,在这种情况下为什么需要Zend表。 我希望我能很好地解释我自己

这更像是一个设计问题。 我知道有两种方法可以在Zend框架中使用连接

  • 使用Zend表实例(其Select obj)处理它
  • 使用Zend Db实例(其Select obj)处理它
  • 在第一种方法中,我觉得很奇怪-某些表也必须处理其他表,这不是很好,很混乱,至少当我读取方法名getData()时-我假设它处理自己的数据

    第二个更好,您可以使用一些类作为服务—NodeService,它将处理表node和node_的转换,但也会产生一个问题,在这种情况下为什么需要Zend表。 我希望我能很好地解释我自己
    谢谢。

    从技术上讲,您指的是
    Zend\u Db\u Select
    Zend\u Db\u Table\u Select
    Zend_Db
    Zend_Db_表
    不允许加入

    从:

    Zend_Db_Table_Select对象是Zend_Db_Select对象的扩展,它对查询应用特定的限制。这些改进和限制包括:

    • 您可以选择返回fetchRow或fetchAll查询中的列子集。当不希望为所有列返回大量结果时,这可以提供优化好处
    • 可以指定从选定表中计算表达式的列。但是,这意味着返回的行或行集将是只读的,不能用于save()操作。如果试图执行save()操作,则状态为只读的Zend_Db_Table_行将引发异常
    • 您可以允许select上的JOIN子句允许多表查找
    • 不能指定要在行/行集中返回的联接表中的列。这样做将触发一个PHP错误。这样做是为了确保Zend_Db_表的完整性得到保留。i、 e.Zend_Db_Table_行应仅引用从其父表派生的列

    主要区别在于,
    Zend_Db_Table
    Zend_Db_Table_Select
    充当一个函数,它允许直接访问一个表及其行,并允许调用方法来对表进行crud,而
    Zend_Db_Select
    则没有,而且是独立的。

    从技术上讲,您正在参考
    Zend\u Db\u Select
    Zend\u Db\u Table\u Select
    Zend_Db
    Zend_Db_表
    不允许加入

    从:

    Zend_Db_Table_Select对象是Zend_Db_Select对象的扩展,它对查询应用特定的限制。这些改进和限制包括:

    • 您可以选择返回fetchRow或fetchAll查询中的列子集。当不希望为所有列返回大量结果时,这可以提供优化好处
    • 可以指定从选定表中计算表达式的列。但是,这意味着返回的行或行集将是只读的,不能用于save()操作。如果试图执行save()操作,则状态为只读的Zend_Db_Table_行将引发异常
    • 您可以允许select上的JOIN子句允许多表查找
    • 不能指定要在行/行集中返回的联接表中的列。这样做将触发一个PHP错误。这样做是为了确保Zend_Db_表的完整性得到保留。i、 e.Zend_Db_Table_行应仅引用从其父表派生的列

    主要区别在于,
    Zend_Db_Table
    Zend_Db_Table_Select
    充当一个函数,它允许直接访问一个表及其行,并允许调用方法对表进行crud,而
    Zend_Db_Select
    不这样做,而且是独立的。

    是的,你的指向是明确的,只是不想详细说明,但主要的问题仍然是在哪里使用join@simple很抱歉我认为从我的回答中可以清楚地看出这一点。只要不需要表数据网关的额外好处,就可以使用Zend_Db_Select。就我个人而言,我90%的时间都使用Zend_Db_Table_Select(基本上我所有的模型都扩展了Zend_Db_Table_抽象,但处理xml数据的模型除外)。我已经习惯了,尽管Zend_Db_Select在大多数情况下可能也很好。是的,你的观点很明确,只是不想深入细节,但主要问题仍然是在哪里使用join@simple很抱歉我认为从我的回答中可以清楚地看出这一点。只要不需要表数据网关的额外好处,就可以使用Zend_Db_Select。就我个人而言,我90%的时间都使用Zend_Db_Table_Select(基本上我所有的模型都扩展了Zend_Db_Table_抽象,但处理xml数据的模型除外)。我已经习惯了,尽管Zend_Db_Select在大多数情况下可能也不错。