加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP代码重构要领漫谈

发布时间:2021-05-24 11:21:59 所属栏目:编程 来源:网络整理
导读:本文实例说明白PHP代码重构要领。供各人参考研究详细如下: 跟着 PHP 从一种简朴的剧本说话转变为一种成熟的编程说话,一个典范的 PHP 应用措施的代码库的伟大性也随之增大。为了节制对这些应用措施的支持和维护,我们可以行使各类测试器材来自动化
副问题[/!--empirenews.page--]

本文实例说明白PHP代码重构要领。分享给各人供各人参考,详细如下:

跟着 PHP 从一种简朴的剧本说话转变为一种成熟的编程说话,一个典范的 PHP 应用措施的代码库的伟大性也随之增大。为了节制对这些应用措施的支持和维护,我们可以行使各类测试器材来自动化该流程。个中一种是单位测试,它应承您直接测试所编写代码的正确性。然而,凡是遗留代码库是不得当举办这种测试的。本文将先容对包括常见题目的 PHP 代码的重构计策,以便简化行使风行的单位测试器材举办测试的进程,同时镌汰改造代码库的依靠性。

简介

回首 PHP 的成长过程,我们发明它已经从一个简朴的用来更换其时风行的 CGI 剧本的动态剧本说话酿成一种成熟的当代编程说话。 跟着代码库的增添,手动测试已经酿成不行能完成的使命,无论是大是小,全部代码的变革城市对整个应用措施发生影响。这些影响也许小到只是影响某个页面的加 载或表单生涯,也也许是发生难以检测的题目,可能发生只在特定前提下才会呈现的错误。乃至,它也许会使早年修复的题目从头呈此刻应用措施中。为此开拓了许 多测试器材来办理这些题目。

个中一种风行的要领是所谓的成果或验收测试,它会通过应用措施的典范用户交互来测试这个应用措施。这是一种 很得当测试应用措施中各个历程的要领,可是测试进程也许很是慢,并且一样平常无法测试底层的类和要领是否按要求正常事变。这时,我们必要行使另一种测试要领, 那就是单位测试。单位测试的方针是测试应用措施底层代码的成果,担保它们执行后发生正确的功效。凡是,这些 “不绝增大” 的 Web 应用措施会逐步呈现越来越多久而久之难以测试的遗留代码,这使开拓团队很难担保应用措施测试的包围率。这凡是被称为 “不行测试代码”。此刻让我们看看怎样辨认应用措施中的不行测试代码,以及修复这些代码的要领。

辨认不行测试的代码

关于代码库不行测试性的题目域凡是在编写代码时是不明明的。当编写 PHP 应用措施代码时,人们倾向于凭证 Web 哀求的流程来编写代码,这凡是就是在应用措施计划时回收一种越发流程化的要领。急于完成项目或快速修复应用措施都也许促使开拓职员 “走捷径”,以便快速完成编码。早年,编写不妥可能紊乱的代码也许会加重应用措施中的不行测试性题目,由于开拓职员凡是会举办风险最小的修复,纵然它也许发生后续的支持题目。这些题目域都是无法通过一样平常的单位测试发明的。

依靠全局状态的函数

全局变量在 PHP 应用措施中很利便。它们应承您在应用措施中初始化一些变量或工具,然后在应用措施的其他位置行使。然而,这种机动性是有价钱的,太过行使全局变量是不行测试代码的一个通病。我们可以在 清单 1中看到这种环境。

清单 1. 依靠于全局状态的函数

这些全局变量带来了两个差异的题目。第一个题目是您必要在测试中思量全部这些全局变量,担保给它们配置了函数可接管的有用值。第二个题目更为严峻, 那就是您无法修改后续测试的状态并使它们的功效无效,您必要担保将全局状态重置为测试运行之前的状态。PHPUnit 有一些器材可以帮您备份全局变量并在测试运行后规复它们的值,这些器材可以或许辅佐办理这个题目。然而,更好的要领是使测试类可以或许直接给要领传入这些全局变量的值。清单 2表现了回收这种要领的一个例子。

清单 2. 修改这个函数以支持重写全局变量