All Projects → tacnoman → Dephpugger

tacnoman / Dephpugger

Licence: mit
Php Debugger to run in terminal to debug your code easily.

Projects that are alternatives of or similar to Dephpugger

Vscode Php Debug
PHP Debug Adapter for Visual Studio Code 🐞⛔
Stars: ✭ 569 (+214.36%)
Mutual labels:  debugger, xdebug
pugdebug
pugdebug is a standalone debugging client for PHP applications that uses XDebug as the debugging engine.
Stars: ✭ 72 (-60.22%)
Mutual labels:  debugger, xdebug
Dontbug
Dontbug is a reverse debugger for PHP
Stars: ✭ 710 (+292.27%)
Mutual labels:  debugger, xdebug
Xdebug Helper For Chrome
Easily activate PHP debugging, profiling and tracing with this Xdebug Chrome extension
Stars: ✭ 270 (+49.17%)
Mutual labels:  debugger, xdebug
Ansible Role Php Xdebug
Ansible Role - PHP Xdebug
Stars: ✭ 34 (-81.22%)
Mutual labels:  debugger, xdebug
Smartdebug.js
Next-generation debugging for javascript!
Stars: ✭ 157 (-13.26%)
Mutual labels:  debugger
Lua Resty Repl
Interactive console (REPL) for Openresty and luajit code
Stars: ✭ 165 (-8.84%)
Mutual labels:  debugger
Edb Debugger
edb is a cross-platform AArch32/x86/x86-64 debugger.
Stars: ✭ 2,019 (+1015.47%)
Mutual labels:  debugger
Komodoedit
Komodo Edit is a fast and free multi-language code editor. Written in JS, Python, C++ and based on the Mozilla platform.
Stars: ✭ 1,972 (+989.5%)
Mutual labels:  debugger
Yii2 Debug
Debug Extension for Yii 2
Stars: ✭ 179 (-1.1%)
Mutual labels:  debugger
Vscode Chrome Debug
Debug your JavaScript code running in Google Chrome from VS Code.
Stars: ✭ 2,126 (+1074.59%)
Mutual labels:  debugger
Cerebral
Declarative state and side effects management for popular JavaScript frameworks
Stars: ✭ 1,946 (+975.14%)
Mutual labels:  debugger
Vimspector
vimspector - A multi-language debugging system for Vim
Stars: ✭ 2,711 (+1397.79%)
Mutual labels:  debugger
Hitchcock
The Master of Suspense 🍿
Stars: ✭ 167 (-7.73%)
Mutual labels:  debugger
Rxfiddle
Visualize your Observables
Stars: ✭ 157 (-13.26%)
Mutual labels:  debugger
Ethereum Graph Debugger
Ethereum solidity graph plain debugger. To have the whole picture when debugging.
Stars: ✭ 177 (-2.21%)
Mutual labels:  debugger
Gapid
GAPID is a collection of tools that allows you to inspect, tweak and replay calls from an application to a graphics driver.
Stars: ✭ 1,975 (+991.16%)
Mutual labels:  debugger
React Native Network Logger
An HTTP network request monitor for React Native with in-app interface for iOS and Android with no native code
Stars: ✭ 161 (-11.05%)
Mutual labels:  debugger
Twindbg
PEDA-like debugger UI for WinDbg
Stars: ✭ 171 (-5.52%)
Mutual labels:  debugger
Scyllahide
Advanced usermode anti-anti-debugger. Forked from https://bitbucket.org/NtQuery/scyllahide
Stars: ✭ 2,211 (+1121.55%)
Mutual labels:  debugger

Build Status Code Climate HitCount Coverage GitHub license GitHub tag Packagist

logo

What is Dephpugger?

Dephpugger (read depugger) is an open source lib to make a debug in php direct in terminal, without necessary configure an IDE. The dephpugger run in Php Built in Server using another command. You can use for:

Web applications

Lumen in example

dephpugger web Image 1.0 - Screenrecord for debug web

Cli Scripts

dephpugger Image 1.1 - Screenrecord for debug cli scripts

Another example

dephpugger

Install

To install you must run this code (using the composer).

$ composer require tacnoman/dephpugger

Install globally

In Linux or Mac Os X

Run this command:

$ composer global require tacnoman/dephpugger

And add in your ~/.bash_profile.

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

Now, run source ~/.bash_profile and you can run the commands using only $ dephpugger.

In Windows

Sorry for this :/ I don't have Windos SO to run the Dephpugger, but I'm waiting your Pull Request to solve this ;D

But you can use Docker

Using phar file

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

Or installing via curl

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

Install XDebug

To install XDebug in Linux you must run:

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

Find the last line, similar to: You should add "zend_extension=/usr/lib/php/20170718/xdebug.so" to php.ini and copy to your php.ini file. To get the php.ini file, you can run:

$ 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

Copy the zend_extension=/usr/lib/php/20170718/xdebug.so to last line in /etc/php/7.2/cli/php.ini.

Docker

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

Dependencies

  • PHP 7.0 or more (not tested in older versions)
  • Xdebug activate
  • A Plugin for your browser (If you want to debug a web application)

Plugins for

You can run this commands to check your dependencies:

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

# Or in global

$ dephpugger requirements
$ dephpugger info

Usage

To usage you must (after installation) run two binaries in vendor/bin folder.

$ 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

You must run in two different tabs (in next version you'll can run in an uniq tab). After run theese commands, you need to put the follow line in your code:

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

Now, you can open in your browser the page (localhost:8888/[yourPage.php]). When you request this page your terminal will start in breakpoint (like the image 1.0).

To debugger a php script, you could run:

$ php vendor/bin/dephpugger cli myJob.php

# Or in global

$ dephpugger cli myJob.php

Comands after run

When you stop in a breakpoint you can make theese commands:

Command Alias Explanation
next n To run a step over in code
step s To run a step into in code
set <cmd>:<value> Change verboseMode or lineOffset in runtime
continue c To continue script until found another breakpoint or finish the code
list l Show next lines in script
list-previous lp Show previous lines in script
help h Show help instructions
$variable Get a value from a variable
$variable = 33 Set a variable
my_function() Call a function
dbgp(<command>) To run a command in dbgp
quit q Exit the debugger

Configuration (is simple)

The Dephpugger project has default options like a port, host, socket port, etc. You can change this values adding a file .dephpugger.yml in root directory project. You can create in your .dephpugger.yml file the configurations. Like this:

--- 
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

Theese values will replace the default configuration.

Full documentation

To see the full documentation click here.

How to use with phpunit, behat, codeception and others

The documentation to use, click here.

Run tests

$ composer test
$ composer lint

Bugs?

Send me an email or open an issue:

Renato Cassino - Tacnoman - <[email protected]>

See our changelog

Articles and Videos

  1. How debug Drupal applications using Dephpugger
  2. Dephpugger in Sinapore event
  3. How debug applications with Dephpugger
  4. Debugging with Dephpugger
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].