tacnoman/dephpugger

在终端中调试 PHP。

1.5.2 2019-10-01 03:56 UTC

README

Build Status Maintainability GitHub license GitHub tag Packagist

logo

什么是 Dephpugger?

Dephpugger(读作 depugger)是一个开源库,允许开发者在终端中直接调试 PHP,无需必要地配置 IDE。dephpugger 通过另一个命令在 PHP 内置服务器上运行。您可以使用它来

Web 应用程序

例如 Lumen

dephpugger web 图 1.0 - 调试 Web 的屏幕录制

命令行脚本

dephpugger 图 1.1 - 调试命令行脚本的屏幕录制

另一个例子

dephpugger

安装

要安装,您必须运行此代码(使用 composer)。

$ composer require tacnoman/dephpugger

全局安装

在 Linux 或 Mac Os X

运行此命令

$ composer global require tacnoman/dephpugger

并在您的 ~/.bash_profile 中添加。

export PATH=$PATH:$HOME/.composer/vendor/bin

现在,运行 source ~/.bash_profile,您可以使用 $ dephpugger 运行命令。您可以使用 composer 命令运行 dephpugger。您可以使用

$ composer exec dephpugger <command>

此最后一个命令将在本地或全局安装中运行。

在 Windows 上

很抱歉 :/ 我没有 Windows 操作系统来运行 Dephpugger,但我期待您的 Pull Request 来解决这个问题 ;D

但您可以使用 Docker

使用 Phar 文件

$ wget https://raw.githubusercontent.com/renatocassino/dephpugger/master/dephpugger.phar -O dephpugger
$ chmod +x ./dephpugger
$ mv ./dephpugger /usr/local/bin/dephpugger

或通过 curl 安装

$ curl https://raw.githubusercontent.com/renatocassino/dephpugger/master/installer.sh | bash

安装 XDebug

要在 Linux 上安装 XDebug,您必须运行

$ sudo apt-get install php-7.2-cli php-dev php-pear
$ sudo pecl install xdebug

找到类似以下内容的最后一行: 您应该在 php.ini 中添加 "zend_extension=/usr/lib/php/20170718/xdebug.so",并将其复制到您的 php.ini 文件中。要获取 php.ini 文件,您可以运行

$ php --info | grep php.ini

Configuration File (php.ini) Path => /etc/php/7.2/cli
Loaded Configuration File => /etc/php/7.2/cli/php.ini

zend_extension=/usr/lib/php/20170718/xdebug.so 复制到 /etc/php/7.2/cli/php.ini 的最后一行。

Docker

$ docker run --rm -p 8888:8888 tacnoman/dephpugger:latest server

依赖项

  • PHP 7.0 或更高版本(未在旧版本中测试)
  • 激活 Xdebug
  • 浏览器插件(如果您想调试 Web 应用程序)

插件

您可以使用以下命令检查您的依赖项

$ vendor/bin/dephpugger requirements
$ vendor/bin/dephpugger info # To get all values setted in xDebug

# Or in global

$ dephpugger requirements
$ dephpugger info

用法

要使用,您必须在安装后运行 vendor/bin 文件夹中的两个二进制文件。

$ php vendor/bin/dephpugger debugger # Debugger waiting debug
$ php vendor/bin/dephpugger server   # Server running in port 8888

# Or in global

$ dephpugger debugger
$ dephpugger server

您必须在两个不同的选项卡中运行(在下一个版本中,您将可以在一个唯一的选项卡中运行)。运行这些命令后,您需要在您的代码中放置以下行

<?php
# ...
xdebug_break(); # This code is a breakpoint like ipdb in Python and Byebug in Ruby
# ....

现在,您可以在浏览器中打开页面(localhost:8888/[yourPage.php])。当您请求此页面时,您的终端将开始断点(如图 1.0 所示)。

要调试 PHP 脚本,您可以运行

$ php vendor/bin/dephpugger cli myJob.php

# Or in global

$ dephpugger cli myJob.php

运行后的命令

当您在断点处停止时,您可以执行以下命令

配置(很简单)

Dephpugger 项目具有默认选项,如端口、主机、套接字端口等。您可以通过在项目根目录中添加一个 .dephpugger.yml 文件来更改这些值。您可以在您的 .dephpugger.yml 文件中创建配置。例如

--- 
debugger: 
  host: mysocket.dev # default: 0.0.0.0
  port: 9002 # default: 9005
  lineOffset: 10 # default: 6
  verboseMode: false # default: false
  historyFile: ~/.dephpugger_history # default: .dephpugger_history
server:
  host: myproject.dev # default: 0.0.0.0
  port: 8080 # default: 8888
  path: ./public/ # default: null
  file: index.php # default: null

这些值将替换默认配置。

完整文档

要查看完整文档,请点击这里

如何与 phpunit、behat、codeception 等一起使用

有关使用的文档,请点击这里

运行测试

$ composer test
$ composer lint

有虫子吗?

给我发电子邮件或创建一个问题

Renato Cassino - Tacnoman - <renatocassino@gmail.com>

查看我们的变更日志

文章和视频

  1. 如何使用Dephpugger调试Drupal应用程序
  2. Dephpugger在新加坡的活动
  3. 使用Dephpugger进行调试
  4. 如何使用Dephpugger调试应用程序