php - Zend Framework - 直接使用 SQL

标签 php sql zend-framework

我目前正在使用 Zend Framework 从头开始​​一个项目。我在 PHP 和 SQL 方面经验丰富,但我以前从未使用过 PHP 框架。

关于数据库方面的事情 - 许多教程使用 Zend 类来包装 SQL,这样您就不必编写原始 SQL。例如:

$select = $this->select()
    ->from('MyTable')
    ->order('MyField');

但是,我更喜欢编写 SQL,因为这是我习惯的做法,而且我觉得从灵 active 和开发速度两方面来说,这是最好的决定。 (请注意,我实际上是指使用 PDO 的参数化 SQL,而不是完全原始的 SQL)。

我的问题是:

  1. 这样做有什么问题吗?从长远来看,使用 Zend 进行数据库查询的方式是否更好? Zend 开发人员自己编写 SQL 而不是使用 Zend 风格的方法查询是否很常见?

  2. 在保持 MVC 代码布局的同时,最常见的实现方式是什么?谷歌给了我this link (和类似的),但是 Controller 中有 SQL(我不想要)。我仍然想创建我自己的特定于应用程序的模型类,并坚持 MVC 拆分。我可以想到很多地方来实例化 Zend_Db_Adapter_Pdo_Mysql 类以在我的模型中使用 - 但是我想知道最常见的设计模式是什么。

最佳答案

我相信你最好的选择是在你的模型中写下:

public function myQuery ($table, $id) {
    return $this
        ->getDefaultAdapter()
        ->query("SELECT * FROM ? WHERE id = ?",
            array($table,$id)
        )
        ->fetchAll()
    ;
}

这样做完全没问题。应该不会有任何问题。事实上,当您遇到需要使用子查询或其他更复杂的东西时,您会省去很多麻烦。您可以使用 Zend 的函数来完成大部分工作,但老实说:随着查询变得更加复杂,它们往往变得不可读。

Zend 方式是否适合您,取决于您自己以及您对它们的舒适程度。我更喜欢 Zend 为大部分工作提供的功能,但这真的只是个人喜好问题。

据我所知,这两种风格的使用很常见,尽管我不知道有多少人使用 Zend(大多数来 self 工作的公司),所以不要引用我的话;)。

关于php - Zend Framework - 直接使用 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875861/

相关文章:

Php、MySql 线程注释限制

php - Websocket - 客户端不接收数据

php - Zend_Form 手动设置和验证字段值

php - 命名空间如何在 PHP 中工作

sql - 使用转义换行符和回车符取消转义字符串

php - 在 PHP 中检索值

sql - 使用 jdbc 创建 db2 模式

php - 使用 Zend Framework 的 Android RESTful Web 应用程序

php - Zend_分页器;它优化了吗?

php - 如何从公共(public)文件夹中检索图像并在 Laravel 中转换为 base64?