如何运行/调试你的PHP代码


Posted in PHP onOctober 23, 2020

前言

没有任何一名程序员可以一气呵成、完美无缺的在不用调试的情况下完成一个功能或模块。调试实际分很多种情况。本篇文章我分享下自己在实际开发工作中的经验,我个人理解,调试分三种,注意我所讲的是调试并非测试

  • 功能调试
  • 组件调试
  • 片段调试

功能调试是指在完成一个功能或者正在完成功能的过程中进行的错误、逻辑、结果的测试

组件调试是指将一个正在开发测试的插件、类进行错误、逻辑和结果的测试

片段调试是指将一段代码片段、函数、变量的预期和结果的测试

接下来我们看下本章列出的一些调试方法

暴力调试

这种方式简单粗暴,一般PHP程序员都会用,那就是浏览器调试,在编辑器内写完代码后随后打开万能的浏览器输入地址开始调试代码。

断点调试

说实在的,这种方式如果仅仅是看看输出结果,完全没必要,看似高大上实际浪费时间经历,一般我都会在代码块写好之后跑一遍debug,检查一下流程和结果是否在我的预期内或者遇到了某些逻辑问题无法察觉,还是选择断点调试比较靠谱,省时省力。最厉害的程序员也有懵逼的一刻不是吗?

命令调试

如果你在官网或者github上下载了一段代码片段,急于调试但还不愿意将代码片段放入项目中或者新开辟一个目录,完全可以使用php命令去执行这个代码块

php -f filename.php

如果代码片段较短,你可以使用

php -r "code ..."

执行运行PHP代码

片段调试

当你突然想起一个方法或者算法急于去验证它,但又不愿意打开编辑器或者执行php自带的命令行的话。你可以选择使用psysh工具去执行验证你的想法,这个工具安装十分简单

Psy Shell v0.8.17 (PHP 7.1.14 — cli) by Justin Hileman
New version is available (current: v0.8.17, latest: v0.9.6)
>>> date('Y-m-d H:i:s',time())
=> "2018-08-09 14:18:10"
>>>

下载地址 : https://psysh.org/

测试调试

这是一个严肃的调试方法,很多程序员都认为功能模块、组件开发完就结束的任务,随后交给测试人员去测试就好了。其实并不然,有些隐藏的bug或者致命错误、逻辑错误、系统错误(例如开启了无用的线程,未使用的变量、方法、类等等)是无法被测试出来的。实际作为一名程序员,开发功能的流程是这样的。

理解需求 -> 分解需求 -> 整理逻辑 -> 设计代码 -> 敲代码 -> 调试 -> 测试

如果最后一步你从来没有做过,那你只能是半个程序员。 测试我推荐使用PHPunit,更好的去理解自己的代码,才是一个合格的程序员。

编辑器调试

感觉讲这个有点废话了,如果你感觉打开命令行然后输入 php xxxx 特别费劲的话,你也可以选择使用编辑器自带的调试,一般像sublime,visual Studio Code , PHPStrom 都会自带的调试工具,其原理依旧是调用 php -r 但总比打开命令行输入命令要快的多。

致谢

这并不是一篇酝酿了很久的文章,是在我日常的开发中经常使用的几种调试方法。
感谢你看到这里,希望本篇文章可以帮助到你,有什么问题可以在评论区留言。谢谢

以上就是如何运行/调试你的PHP代码的详细内容,更多关于运行/调试 PHP代码的资料请关注三水点靠木其它相关文章!

PHP 相关文章推荐
使用数据库保存session的方法
Oct 09 PHP
PHP学习笔记之一
Jan 17 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
php通过排列组合实现1到9数字相加都等于20的方法
Aug 03 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
PHP CURL使用详解
Mar 21 PHP
php redis setnx分布式锁简单原理解析
Oct 23 #PHP
PHP如何通过带尾指针的链表实现'队列'
Oct 22 #PHP
php使用event扩展的io复用测试的示例
Oct 20 #PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
Oct 20 #PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 #PHP
php实现记事本案例
Oct 20 #PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 #PHP
You might like
PHP4与PHP5的时间格式问题
2008/02/17 PHP
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
2019/10/11 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
微信小程序框架的页面布局代码
2019/08/17 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
javascript实现评分功能
2020/06/24 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
深入源码解析Python中的对象与类型
2015/12/11 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
nginx搭建基于python的web环境的实现步骤
2020/01/03 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
Python实现爬取并分析电商评论
2020/06/19 Python
专营店会计助理岗位职责
2013/11/29 职场文书
我的求职计划书
2014/01/10 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
社区党建工作总结2015
2015/05/13 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers