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

前言

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

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

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

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

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

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

暴力调试

这种方式简单粗暴,一般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代码的资料请关注我们其它相关文章!

(0)

相关推荐

  • 使用GDB调试PHP代码,解决PHP代码死循环问题

    最近在帮同事解决Swoole Server问题时,发现有1个worker进程一直处于R的状态,而且CPU耗时非常高.初步断定是PHP代码中发生死循环. 下面通过一段代码展示如何解决PHP死循环问题. 复制代码 代码如下: #dead_loop.php $array = array(); for($i = 0; $i < 10000; $i++) {     $array[] = $i; } include __DIR__."/include.php"; #include.php

  • PHP学习笔记 (1) 环境配置与代码调试

    一配置PHP环境 1.了解什么是PHP PHP("PHP: Hypertext Preprocessor",超文本预处理器的字母缩写) PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用 2.PHP的背景和优势 PHP的发展背景 1).1994年由Rasmus Lerdorf创建,开始是一个简单的Perl语言编写的程序,用统计

  • Windows和Linux中php代码调试工具Xdebug的安装与配置详解

    一.为什么需要Debugger? 很多PHP程序员调试使用echo.print_r().var_dump().printf()等,其实对 于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以 看出来(当然可能还需要使用一些时间函数).那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢? 这个问题的答案不妨留到后面来揭晓. 二.什么是Xdebug? Xdebug是一个开放源代码的PHP程序调试器(

  • php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程

    时间:2020年8月15日10:25:47 Xdebug插件安装省略,自己百度安装,win和linux环境安装方式不一样. 注意和php版本匹配 1.phpinfo信息 2.php.ini配置 [xdebug] zend_extension=/usr/lib64/php/modules/xdebug.so xdebug.remote_enable =1 xdebug.profiler_enable = On xdebug.auto_trace=On xdebug.profiler_enable_

  • PhpStorm 如何优雅的调试Hyperf的方法步骤

    前言: 我也是昨晚看了黄岛主的直播后学会的这个方法,今天中午趁着休息时间,把这个技巧分享给大家.就是大家在调试 Hyperf 的时候,可能总需要做一些服务的重启,重新点击 postman 的接口请求按钮,查看调试的结果是否正常,这篇文章就是教大家如何在 PhpStorm 中完成这一系列的操作. 一.Hyperf快速重启 第一步: 点击 PhpStorm 右上角的按钮,如图所示: 第二步: 点击弹框中左上角的添加按钮,然后再点击 PHP Script,如图所示: 第三步: 填写PHP脚本的信息:

  • 解决windows上php xdebug 无法调试的问题

    有时候我们在使用php和nginx进行开发的时候,会出现这样的情况,明明扩展已经安装,但是就是无法调试成功.这个时候我们就要耐心去分析问题产生的原因. 第一步:查看php的版本比如是否是x64还是x86,看看xdebug是否激活,可以通过phpinfo();来查看扩展是否激活. 第二步:使用php -m再次检查xdebug是否安装. 这个时候可能会遇到 xdebug must be loaded as zend extension .这个是因为我们在php.ini中配置extension的时候需

  • PHP使用debug_backtrace方法跟踪调试代码调用详解

    本文实例讲述了PHP使用debug_backtrace方法跟踪调试代码调用.分享给大家供大家参考,具体如下: 在开发过程中,例如要修改别人开发的代码或调试出问题的代码,需要对代码流程一步步去跟踪,找到出问题的地方进行修改.如果有一个方法可以获取到某段代码是被哪个方法调用,并能一直回溯到最开始调用的地方(包括调用的文件,行数,参数等),这样就能很方便的定位到出问题的地方. 使用php的debug_backtrace方法可以对代码调用进行跟踪,方便调试代码.它可以生成一个关联数组,数组中会收集当前应

  • 调试php程序的简单步骤

    一般如何调试php程序? 一般使用Xdebug,Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况. 第一步.下载xdebug 有两个版本带有Non-thread-safe和不带有Non-thread-safe,缩写(ts)主要是看你的php版本是否线程安全版本. 然后把下载的dll拷贝到php里面的ext文件夹里(扩展dll都在这里),改名为php_xdebug.dll 小编用的Windows7 + apache + mysql

  • php代码调试利器firephp安装与使用方法分析

    本文实例分析了php代码调试利器firephp安装与使用方法.分享给大家供大家参考,具体如下: firephp简述 如果你曾经写过js代码的话,那么你对如下的代码肯定不会陌生: console.log('something'); 通过这行代码,就可以在chome和firefox的开发工具(F12)的console栏中看到你想要的调试信息. 那么,php能不能也通过这种形式进行代码调试呢? 答案是肯定的,可以通过firephp工具来实现在浏览器的console栏中进行调试. firephp的安装

  • PHP中调试函数debug_backtrace的使用示例代码

    前言 如果我们想知道某个方法被谁调用了? debug_backtrace可以解决.debug_backtrace() 可以打印出一个页面的调用过程 , 从哪儿来到哪儿去一目了然. 有时候我们想知道这个函数或方法的调用堆栈,也就是它是如何一级一级是被调用到的,可以用 PHP 的 debug_backtrace 函数打印,就像这样: 示例代码 public function update(Request $request, $id) { dd(debug_backtrace()); $getGame

随机推荐