PHP OOP 数据库类 - 真的需要吗?

标签 php oop mysqli

<分区>

我目前正在学习使用 PHP 中的 OOP 编写代码,并且经常遇到数据库类和抽象层。我将编写 CMS 代码视为一个巨大的挑战,我开始编写数据库类代码时没有考虑太多。

我实际上倾向于按原样使用 MySQLi(我认为按原样使用它非常好),而不是创建一个类来处理 CRUD 操作所以我真的需要一个类来处理所有这些东西吗?

如果没有,连接到数据库的最佳方式是什么,只需在我的应用程序开始时执行并传递连接?或者编写一个我缺少的数据库类真的有很大的好处吗?

我认为错误处理会是这样的好处之一,但如果我让我的类(class)尽可能接近 MySQLi,这是否是继续类的充分理由?

最佳答案

主要好处是,如果您可以让所有代码都通过数据库对象。您可以在将来轻松更改数据库实现。您说您正在学习 mysqli,但在您更改为 PDO 的过程中说,您将不得不重构 - 一切 -。

使用您的自定义数据库对象,您可以简单地更改集成而不影响其余代码。例如。你的 objects->connect() 函数仍然可以像现在一样被调用,但底层代码会改变,因为它都在你的自定义类中,你所做的改变是最小的。

这只是众多好处之一。与数据库对象交互以运行查询和存储结果的自定义类很常见(MVC 的模型部分——通常扩展一个公共(public)基础对象,通常称为 RecordSet 或具有运行选择/更新/删除功能的类似对象/ETC)。同样,您可以轻松地将实现从一种方法更改为另一种方法。

我所描述的是一般面向对象编程的一个非常普遍的优势。请参阅您的常识的答案以获得另一个好处。

关于PHP OOP 数据库类 - 真的需要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146342/

相关文章:

php - WordPress 外部 Cookie 身份验证

php - 奇怪的字符^M php无法识别

ios - 类型转换 SIGABRT

php - Mysqli 准备语句 + 绑定(bind) Order BY

php - mysqli_query() 期望参数 1 为 mysqli,第 46 行 ~\index.php 中给出的资源

php - 从 foreach 循环外部的多维数组中获取最后一个值

php - 如何从 AngularJS 站点安全地连接到 Web API

PHP Regex 将单词列表与字符串匹配

c# - Haskell 中的 OOP 样式继承

java - 不允许同一玩家同时担任游戏中的两个玩家