如何用 Dephpugger 调试 PHP 应用程序
如何用 Dephpugger 调试 PHP 应用程序
原文:https://medium.com/hackernoon/how-debug-php-applications-with-dephpugger-98cc234d917c
dep pugger是一个使用任何 web 框架或 php CLI 代码调试你的 php 应用程序的工具。你可以在终端中看到,而不需要安装一个 IDE 来使用。非常简单和有用。参见下面的示例:
https://www.youtube.com/embed/TUTqby-LbuQ
Dephpugger demonstration
为什么?
在其他语言(如 Python 和 Ruby)中,在终端中启动 web 服务器并开始开发应用程序代码是非常正常的。在 PHP 中,很多人安装 NGINX 或者 Apache 来运行本地开发中的一个应用。但是,在 PHP 5.4 之后,您可以用一个简单的命令启动 web 服务器。
$ php -S localhost:8080 # Open http://localhost:8080
我更喜欢这种模式,因为我只需要安装 PHP。
如果你是一个 Python 开发者,想要在一个断点中启动一个 debug 来检查你的代码,你可以使用 lib IPDB,在同一个服务器中你会看到代码停止,在终端中会出现代码行。
在 ruby 语言中非常类似,你可以安装 lib Byebug 并开始使用。断点只是写“byebug”并刷新你的页面。
但是,如果你是 PHP 开发人员,你必须先安装 xDebug,选择一个 IDE 或编辑器,搜索教程how integrate <my editor> with xDebug。如果要更改 IDE,必须重新配置新的 IDE。这真的很糟糕,因为许多开发人员无法安装,更喜欢使用var_dump($variable); die()(或print_r($variable);exit;来查看每个请求中的变量值。
现在,您可以通过简单的安装在终端中运行服务器和调试器。

Dephpugger (left) vs IPDB (right)
属国
调试器使用 PHP 中的一些库来运行调试器。
要调试 web 应用程序,您必须在浏览器中安装一个插件。这里有 Chrome 、 Firefox 、 Safari 和 Opera 的插件区。
除磷装置
要安装 dephpugger 库,您必须首先使用 composer。您可以在全局模式或本地模式下安装(在项目内部,不推荐)。
在本教程中,我们将在全局模式下安装。首先,您需要在终端中运行:
composer global require “tacnoman/dephpugger”:”dev-master”
这个命令将在路径 $HOME/中安装 dephpugger。作曲者/供应商。在供应商目录中存在一个包含 dephpugger 的文件夹 bin。我们需要将这个目录添加到环境变量$PATH 中。
打开文件~/。bash_profile 并添加以下内容:
export PATH=$PATH:$HOME/.composer/vendor/bin
现在,运行:
$ source ~/.bash_profile
现在您可以运行命令dephpugger。
要使用的配置
您可以运行命令dephpugger requirements来查看是否一切正常。您将看到类似这样的内容:

Dephpugger requirements command
使用
如果一切正常,为您的项目创建一个目录。
$ mkdir /path/to/the/project
$ cd /path/to/the/project
不,创建一个名为 index.php 的文件。
<?php
# File index.php
$array = [0,2,1,3,4];xdebug_break(); # <-- Important line. This line is a breakpoint$array = sort($array);echo implode(‘, ‘, $array);
将终端放在文件夹中,运行 dephpugger 服务器。
$ dephpugger server

Dephpugger server example
现在,打开一个新标签页(在终端中)并运行代码:
$ dephpugger debug
您将在终端中看到这个。

Dephpugger debug
再次打开您的 http://localhost:8888。代码不会在断点处停止,因为你需要激活浏览器的插件。在本教程中,我将展示如何在 Chrome 中使用。

Chrome plugin to xDebug
首先,点击调试,你需要看到一个绿色的调试,如下图所示。

Chrome plugin enabled
现在,用 http://localhost:8888 刷新页面,看看神奇之处。在这个终端标签中,你会看到这个。

Debug in dephpugger lib stopped in a breakpoint
现在代码中有了一个断点。函数 xdebug _ break();是停止代码的断点。现在,您可以导航并研究代码来查找 bug。相当于 IPDB 的 Python 和 Byebug 的 Ruby。
命令列表:
- n ->在代码中运行一个步骤
- s ->在代码中运行一个步骤
- 设置
: ->运行时更改 verboseMode 或 lineOffset - c ->继续脚本,直到找到另一个断点或完成代码
- l ->显示脚本中的下一行
- lp ->显示脚本中的前几行
- helph ->显示帮助说明
- $variable ->从变量中获取值
- $variable = 33 ->设置变量
- my_function() ->调用函数
- q ->退出调试器
你可以在这个链接中看到这个列表一直在更新。
配置您的项目
现在您可以使用 Dephpugger 来调试您的应用程序,但是 Dephpugger 非常灵活,并且非常容易配置。有可能,用一个简单的文件,改变默认的 web 服务器内置端口,改变公共路径,文件运行…
在根项目文件夹中,您必须创建一个名为.dephpugger.yml的文件。这是参数。
---
debugger:
host: localhost # Host to debugger
port: 9005 # Port to debugger
lineOffset: 6 # How many lines will show in each breakpoint
path: ./public/ # default: null - Folder to root path
file: index.php # default: null - File to root path
verboseMode: false # default: false - Only to dephpugger devs
historyFile: ~/.dephpugger_history # File with history commands
server:
host: localhost # Host to your application
port: 8000 # Port to run your application
在官网可以看到,基本配置为 Laravel 、 Lumen 、 ZF2 (Zend Framework 2)、 Symfony 、 Slim Framework 、 Silex 和 Yii2 。
Dephpugger CLI 命令
要调试 CLI 命令,您可以在一个终端中打开调试器,在另一个终端中使用以下命令:
$ dephpugger cli /path/to/cliFile.php
这个命令将使用 Dephpugger 调试运行您的命令。
再见!
这是所有的乡亲。你可以在我们的官网或者我们在 github 的回购中看到更多细节。跟着我们!
塔克曼。

Dephpugger logo



