数据抽象 php,php – 我为什么要抽象我的数据层?

本文探讨了在Web开发中抽象数据层的价值。虽然直接的SQL查询可以快速实现功能,但当涉及到代码维护、数据库迁移或防止SQL注入时,抽象数据层提供了显著的优势。它减少了对特定数据库系统的依赖,使得更换数据库或调整数据库结构时改动更小。此外,统一的数据访问接口提高了代码的可重用性和测试性。通过将数据库操作集中在一处,单元测试变得更简单,且易于添加额外的功能,如错误处理和性能优化。
摘要由CSDN通过智能技术生成

我很难掌握OOP原则,因为出于某种原因,我永远不能将它们应用于Web开发.随着我开发越来越多的项目,我开始理解我的代码的某些部分如何使用某些设计模式使它们更容易阅读,重用和维护,所以我开始越来越多地使用它.

我仍然无法理解的一件事是为什么我应该抽象我的数据层.基本上,如果我需要将存储在我的数据库中的项目列表打印到浏览器,我会按照以下方式执行以下操作:

$sql = 'SELECT * FROM table WHERE type = "type1"';'

$result = mysql_query($sql);

while($row = mysql_fetch_assoc($result))

{

echo '

'.$row['name'].'';

}

我正在阅读所有这些How-Tos或有关PDO伟大的文章,但我不明白为什么.我似乎没有保存任何LoC,我也看不出它是如何更可重用的,因为我上面调用的所有函数似乎都被封装在一个类中但完全相同.我看到PDO的唯一优势是准备好的陈述.

我并不是说数据抽象是一件坏事,我问的是这些问题,因为我正在尝试正确地设计我当前的类,他们需要连接到DB,所以我想我会以正确的方式做到这一点.也许我只是在阅读关于这个主题的不好文章:)

我真的很感激有关这个主题的任何建议,链接或具体的现实例子!

解决方法:

抽象数据层的另一个优点是减少对底层数据库的依赖.

使用您的方法,当您想使用除mysql之外的其他内容或您的列命名更改或关于mysql的php API更改时,您将不得不重写大量代码.

如果所有数据库访问部分都被巧妙地抽象化,那么所需的更改将是最小的,并且仅限于几个文件而不是整个项目.

如果代码集中在一个地方,重用有关sql注入或其他实用程序功能的代码也要容易得多.

最后,如果所有内容都通过某些类而不是项目中的每个页面进行单元测试,则更容易.

例如,在我最近的一个项目中(抱歉,没有代码共享是可能的),mysql相关的函数只在一个类中调用.从查询生成到对象实例化的所有内容都在这里完成.因此,我非常适合更改到另一个数据库或在其他地方重用此类.

标签:php,mysql,oop,database-abstraction

来源: https://codeday.me/bug/20190723/1516663.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值