是否值得将 Doctrine 2 与 Zend Framework 一起使用?

2024-05-07

我知道有些用户在 Zend Framework 中使用 Doctrine 2 而不是 Zend_Db。但我不知道为什么。为什么 Doctrine2 比 Zend_Db 好,为什么 Zend_Db 不好?

Thanks


(2013 年 3 月 7 日)免责声明:这个答案现在可能有点过时了。我目前没有关注 PHP 社区,这个比较是在 Doctrine ORM v2 和 Zend Framework v1 之间进行的。这是苹果与橙子的比较,因为它们是两种不同的东西。


开箱即用的 Zend_Db 更多地只是 PDO 之上的一个增强的数据库抽象层,而 Doctrine 2 是一个对象关系映射器(位于它自己的 DBAL 之上)。

Doctrine 2 对于更复杂的域层来说要好得多,因为所有业务逻辑、持久性逻辑等都分隔在多个类中,因此它们不充当多个角色。此外,因为您有更多的类 - 更干净且松散耦合 - 这使得测试它们变得更加容易。

此外,您将只编写使用 Zend_Db 的 SQL 的一小部分,因为您可以操作实体对象,并且 Doctrine 将这些更改转换为数据库。生成的 SQL 还利用了事务,这为您带来了可观的性能提升!

我建议您阅读领域驱动设计,以更好地理解为什么 Doctrine 2 如此出色。

不过,请不要误会我的意思,您可以使用 Zend_Db 执行 DDD,但它并不是真正的 OOTB(因为它不是 ORM),并且不会像 Doctrine 2 那样强大且功能齐全。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否值得将 Doctrine 2 与 Zend Framework 一起使用? 的相关文章

  • Blade 中无法访问请求错误(Laravel 5.2)

    我已经使用 Laravel 好几个月了 但从未遇到过这样的问题 我创建了一个简单的 Request 类来验证更新用户请求 如果遵循验证规则 该请求可以正常工作 如果验证规则失败 我们应该返回上一页并在 html 中显示所有错误 根据我的说法
  • 检测 PHP 中字符串的字符集(UTF-8 或 Windows-1256)

    我正在根据 简单的 HTML DOM http simplehtmldom sourceforge net 并且我想在获取 URL 的内部文本后检测字符串的字符集 以使用以下命令将其转换为 UTF 8 iconv 我尝试了很多东西 但没有一
  • 多单元元素的 FPDF 高度

    我使用 FPDF 库将一些文档文件导出为 PDF 一个文档包含一系列具有不同长度的字符串 我将所有字符串打印为 pdf gt MultiCell 现在 我希望该 MultiCell 的当前高度具有相同的行间距 以防它们只有一行或多行 代码示
  • Imagick setColor 不适用于 php

    我尝试将所有像素设置为黑色 但它不起作用 我得到与原始图像相同的图像 这是我的代码 image new Imagick DIR image new jpg i 0 j 0 while i lt 100 j 0 while j lt 100
  • PHP SNMP - 找不到模块

    我已启用 SNMP 模块并尝试使用该模块中的功能 我已将 MIBDIRS 环境变量设置为我的 mib 所在的位置 但我仍然收到这些 找不到模块 警告 Cannot find module IP MIB At line 0 in none C
  • 如何从 IIS 7.5 中的 PHP 页面诊断内部服务器错误 (HTTP 500)

    我正在尝试获取在我的本地开发计算机 带有 IIS 7 5 的 Windows 7 64 位 上运行的 aMember 会员管理系统的试用副本 我有 MySQL 5 5 10 和 PHP 5 3 6 后者是我使用 Windows 安装程序包安
  • 如何在变量中存储包含哈希标记的完整 url?

    我正在尝试存储一个网址 例如 http localhost pro print index php page home http localhost pro print index php page home 在变量中 但我找不到执行此操作
  • 使用自定义服务的编译器传递加载 Symfony 的参数

    根据这个问题如何从数据库加载 Symfony 的配置参数 Doctrine https stackoverflow com q 28713495 8945214我有一个类似的问题 我需要动态设置参数 并且我想提供来自另一个自定义服务的数据
  • PHP:将字符串分成 8 个块,我该怎么做?

    我基本上有二进制 假设它的长度是300 我如何将它分割 就像使用爆炸一样 成 8 位块 我查看了 chunk split 但它似乎只有一个 end 参数 而不是将其放入数组的选项 或者它可以插入数组吗 末尾 8 位数字可以低于 8 如果有人
  • JSON 为 foreach() 提供的参数无效

    我在从 JSON 检索数据时遇到一些问题 它总是说为 foreach 提供的参数无效 这是 url php 中的 JSON nama IT SERVICE SOLUTION nilai 0 periode 11 tahun 2014 nam
  • Blade @if 中的 Laravel 会话变量

    当我尝试使用 Laravel Session 在刀片中设置 JS 变量来刷新一些数据时 我在 Laravel 4 2 中遇到了一些奇怪的情况 这很简单 我不知道我错过了什么 目标 在用户注册后立即触发 Javascript 网站浏览 方法
  • 混合数组和对象

    我有一个像这样的数组 Array count gt 2 0 gt stdClass Object term id gt 3109 name gt Aliens Colonial Marines slug gt aliens colonial
  • 为什么我的函数将布尔值更改为“on”?

    所以我是 php 编程世界的新手 我正在在线学习和其他形式等 但我找不到任何东西来帮助回答我的问题 这就是我在这里的原因 任何帮助当然不胜感激 谢谢 我想将下面的代码变成我可以调用的函数 它的工作原理如下所示 如果我选中表单中的复选框 它会
  • PHP 等级分类器 - 数组的问题[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 您好 我正在开发一个 docker 微服务等级检查器应用程序 我正在从 HttpRequest 获取用户输入 我缺乏一些关于数组的基本知识以
  • TCPDF UTF-8 符号未显示

    我使用最新的 TCPDF 版本 5 9 但在编码方面遇到一些奇怪的问题 我需要立陶宛语语言符号 例如 但只能得到其中的一小部分 其他的还是这样 所以我该怎么做 我使用默认的 times 字体 它带有 TCPDF 下载 任何帮助 将不胜感激
  • PHP 中的 MongoDB - 如何将项目插入集合中的数组中?

    这必须很容易 但我似乎无法弄清楚 假设我有一个集合users这是集合中的第一项 id ObjectId 4d8653c027d02a6437bc89ca name Oscar Godson email email protected cdn
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • 如何使用CSS将背景图像放入选择选项标签中

    我有一个从 json 响应接收的国家 地区下拉列表 并且想要在国家 地区名称旁边添加相应的国家 地区国旗图标 也从 json 响应获取图像 我已经尝试了不同的 jQuery 和 bootstrap 插件 但他们所做的是破坏我以前的选择框样式
  • 如何在 Python 中包含 PHP 脚本?

    我有一个 PHP 脚本 news generator php 当我包含它时 它会抓取一堆新闻项并打印它们 现在 我在我的网站 CGI 中使用 Python 当我使用 PHP 时 我在 新闻 页面上使用了这样的内容 为了简单起见 我删掉了这个
  • PHP - Filter_var 替代方案?

    我构建了一个 php 脚本来输出以表单形式发布的数据 但遇到了问题 网站将运行的服务器运行 PHP 5 1 6 此版本的 PHP 不支持 filter var 我需要知道短期内的替代方案 最好是昨天 但在 Google 或 Stack Ov

随机推荐