为什么在PHP中使用ORM?
我最近开始学习ORM,我突然想到一个问题: PHP应用程序大多使用MySql和Sqlite,几乎所有的PHP服务器都安装了这两个应用程序,所以在PHP中使用ORM独立于数据库是否值得为什么在PHP中使用ORM?,php,oop,orm,Php,Oop,Orm,我最近开始学习ORM,我突然想到一个问题: PHP应用程序大多使用MySql和Sqlite,几乎所有的PHP服务器都安装了这两个应用程序,所以在PHP中使用ORM独立于数据库是否值得 性能如何?数据库独立性不是使用ORM的主要原因。您想要的是数据库的一般抽象。这可能意味着:使用简单、开发速度更快、数据库独立性。。。在任何情况下,通常使用ORM都是值得的。如果您的应用程序占用了所有的cpu资源,那么您可以使用一些简单的sql来优化某些查询。不过,我想这是一个罕见的案例 您可能需要阅读以下内容: 选
性能如何?数据库独立性不是使用ORM的主要原因。您想要的是数据库的一般抽象。这可能意味着:使用简单、开发速度更快、数据库独立性。。。在任何情况下,通常使用ORM都是值得的。如果您的应用程序占用了所有的cpu资源,那么您可以使用一些简单的sql来优化某些查询。不过,我想这是一个罕见的案例 您可能需要阅读以下内容:
选择使用ORM有几个原因,我可以想到几个:
- 大多数ORM将使您能够验证插入和更新的数据
- ORMs将允许您将数据库中的列名映射到数据库中的工作字段名。如果您使用的数据库是由其他人设计的,并且具有奇怪的列名,那么这将非常方便
- 他们也会很好地为你处理人际关系。(例如,如果您获取其中一列上具有1:m关系的行,您将获得相关项的子数组,而无需手动执行另一个查询)
就性能而言,我以前在php中使用过doctrine,与仅获取行相比,它会产生巨大的开销。如果您的服务器运行PostgreSql或SQL server(另外两个非常常见的数据库引擎),该怎么办 如果要连接到旧数据库,该怎么办 另外,您是否维护过任何直接连接到数据库的大型项目?当我打开一个满是
mysql\u query
调用的文件时,我会浑身发抖
性能方面。。。取决于所讨论的ORM。我在.NET环境中更熟悉它们,当然在那种环境中,性能会有很大的差异,但这通常是在功能上的权衡
使用ORM将增加代码和数据库之间的正交性——这将使开发和维护更容易。在数据库之间切换的能力是一个好处,但肯定不是唯一的原因。使用ORM可以减少编写与打开数据库连接、连接池、准备语句、执行语句相关的样板代码的冗余,将执行语句的结果映射到更有意义的内容,最后关闭连接 实例化一个对象,设置其属性,然后调用对象上的保存操作,这样做会更简洁。仅这种值就值得使用ORM,而不是手动编码与数据库交互所需的许多步骤 此外,使用干净的ORM,可以在对应用程序进行最小更改的情况下交换数据库 希望对您有所帮助。对于数据库独立性(和性能)的使用。它是内置的,它准备好的语句对于防止SQL注入漏洞非常有用
如果你被困在O/RM上,它甚至还带有一点OO风格。。。请参阅(以及其他一些fetchXxx方法)。ORM有点浪费时间。这很奇怪,因为它是为了节省你的时间而设计的:)但这是真的。我有权在几种语言中使用ORM,这是不值得的。基本上有两种类型的项目:
在我看来,ORM之所以还活着,是因为框架在内部使用了ORM。还有表演?我不确定(因为我不再使用它),但我相信性能也可能是个问题。您必须为从数据库查询中抽象出来的事实付出至少一些代价,对吗?我认为ORM在纸面上是个不错的主意,但效果并不好。我个人认为花时间学习它是不值得的。是的,使用它很好的例子很少,但编程的第一条规则是需求会发生变化,最终你会用SQL优化所有东西,你会后悔,所以为什么一开始就要麻烦呢。无论如何,您可以(而且应该!)使用架构模式抽象数据库层。