PHPackages                             php-debugger/php-debugger - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Debugging &amp; Profiling](/categories/debugging)
4. /
5. php-debugger/php-debugger

ActivePhp-ext-zend[Debugging &amp; Profiling](/categories/debugging)

php-debugger/php-debugger
=========================

A lightweight, high-performance PHP debugger extension. Comptible with Xdebug step-debugging.

0.1.0-rc1(2mo ago)412310[9 issues](https://github.com/php-debugger/php-debugger/issues)[3 PRs](https://github.com/php-debugger/php-debugger/pulls)Xdebug-1.03PHPPHP &gt;=8.2,&lt;8.6CI passing

Since Mar 10Pushed 1w ago6 watchersCompare

[ Source](https://github.com/php-debugger/php-debugger)[ Packagist](https://packagist.org/packages/php-debugger/php-debugger)[ Docs](https://github.com/pronskiy/php-debugger)[ Fund](https://xdebug.org/support)[ GitHub Sponsors](https://github.com/derickr)[ RSS](/packages/php-debugger-php-debugger/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)DependenciesVersions (8)Used By (0)

PHP Debugger
============

[](#php-debugger)

A PHP debugger extension focused on step debugging with near-zero overhead. Forked from [Xdebug](https://xdebug.org/), with profiling, coverage, and tracing removed.

Note

**🧪 This project is an experiment** exploring minimal-overhead PHP debugging.

Why PHP Debugger?
-----------------

[](#why-php-debugger)

- **Near-zero overhead** when loaded but no debug client is connected
- **Xdebug-compatible** — existing configs, IDE setups, and workflows work unchanged
- **Debug-only** — focused exclusively on step debugging
- **Full DBGp protocol support** — works with PhpStorm, VS Code, and any DBGp-compatible IDE

### Benchmarks

[](#benchmarks)

The following benchmarks were run in GitHub's CI (GitHub Actions) environment using a standard Ubuntu runner. The performance was measured using Valgrind to count the number of executed instructions. This is much more precise and reproducible than timing execution runs. All measuremments were done using all supported PHP versions (the number shown is the average), with the extension loaded and no IDE connected.

We measured three different scenarios which we believe represent a good mix of typical PHP operations:

- `bench.php`: a syntetic benchmark that runs a number of computationally heavy functions

ConfigurationOverheadNo debugger—Xdebug**+661.6%**PHP Debugger**+12.9%**- `Rector`: running a RectorPHP rule on a PHP file

ConfigurationOverheadNo debugger—Xdebug**+124.5%**PHP Debugger**+3.6%**- `Symfony`: running a basic request on a Symfony demo project

ConfigurationOverheadNo debugger—Xdebug**+35.3%**PHP Debugger**+1.3%**### On-Demand Debugging

[](#on-demand-debugging)

To improve the performance of code running with the PHP Debugger enabled, several features required for on-demand debugging are disabled if the debugger does not connect to a client at startup.

On-demand debugging allows the debugger to connect later during execution—for example, via `xdebug_connect_to_client()`, `xdebug_break()`, or when an error or exception occurs.

We consider on-demand debugging to be a relatively uncommon use case, and we want to avoid degrading performance for the majority of users. However, since some users rely on this functionality, we provide an INI setting to enable it when needed.

INI setting: `php_debugger.on_demand_debugging_enabled` (default: false)

When this setting is enabled, on-demand debugging features remain active even if no client is connected at startup. Note that this has a significant performance impact: instead of achieving up to a 97% performance improvement, the average improvement drops to around 60%.

For this reason, we recommend enabling this setting only if you specifically require on-demand debugging.

Installation
------------

[](#installation)

### Manual download

[](#manual-download)

Grab the right binary from [Releases](https://github.com/php-debugger/php-debugger/releases), copy it to your extension directory, and add to `php.ini`:

```
zend_extension=php_debugger.so
```

### 🚧 Coming soon

[](#-coming-soon)

**Quick install script:**

```
curl -fsSL https://raw.githubusercontent.com/php-debugger/php-debugger/main/install.php | php
```

**PIE (PHP Installer for Extensions):**

```
pie install php-debugger/php-debugger
```

Configuration
-------------

[](#configuration)

PHP Debugger accepts both `php_debugger.*` and `xdebug.*` INI prefixes. Existing Xdebug configurations work as-is.

```
; Both of these work:
php_debugger.mode = debug
php_debugger.client_host = 127.0.0.1
php_debugger.client_port = 9003
php_debugger.start_with_request = trigger

; Xdebug-compatible (also works):
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request = trigger
```

IDE Setup
---------

[](#ide-setup)

### PhpStorm

[](#phpstorm)

Works with existing PhpStorm debug configurations. No IDE changes needed.

[Configuring Debugger in PhpStorm](https://www.jetbrains.com/help/phpstorm/configuring-xdebug.html)

### VS Code

[](#vs-code)

Works as-is. No changes needed.

Xdebug Compatibility
--------------------

[](#xdebug-compatibility)

PHP Debugger maintains compatibility with Xdebug's debug mode:

FeaturePHP DebuggerXdebug`extension_loaded("xdebug")`✅ true✅ true`extension_loaded("php_debugger")`✅ true❌ false`xdebug.*` INI settings✅ works✅ works`xdebug_break()`✅ works✅ works`XDEBUG_SESSION` trigger✅ works✅ worksStep debugging (DBGp)✅✅On-demand debugging✅ works if `on_demand_debugging_enabled`
is set, does not work otherwise✅Code coverage❌ use pcov✅Profiling❌ removed✅Tracing❌ removed✅### New names (optional)

[](#new-names-optional)

You can also use the new names — they work alongside the Xdebug ones:

- **INI:** `php_debugger.mode`, `php_debugger.client_host`, etc.
- **Functions:** `php_debugger_break()`, `php_debugger_info()`, `php_debugger_connect_to_client()`, `php_debugger_is_debugger_active()`, `php_debugger_notify()`
- **Triggers:** `PHP_DEBUGGER_SESSION`, `PHP_DEBUGGER_SESSION_START`, `PHP_DEBUGGER_TRIGGER`

Requirements
------------

[](#requirements)

- PHP 8.2, 8.3, 8.4, or 8.5

License
-------

[](#license)

Released under [The Xdebug License](LICENSE), version 1.03 (based on The PHP License).

This product includes Xdebug software, freely available from .

Acknowledgments
---------------

[](#acknowledgments)

PHP Debugger is built on the foundation of [Xdebug](https://xdebug.org/), created and maintained by **Derick Rethans** since 2002. His two decades of work on PHP debugging tools made this project possible. Thank you, Derick.

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance91

Actively maintained with recent releases

Popularity24

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 70.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

88d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1196825?v=4)[Roman Pronskiy](/maintainers/pronskiy)[@pronskiy](https://github.com/pronskiy)

![](https://avatars.githubusercontent.com/u/10270757?v=4)[barelon](/maintainers/barelon)[@barelon](https://github.com/barelon)

---

Top Contributors

[![pronskiy](https://avatars.githubusercontent.com/u/1196825?v=4)](https://github.com/pronskiy "pronskiy (78 commits)")[![carlos-granados](https://avatars.githubusercontent.com/u/1383106?v=4)](https://github.com/carlos-granados "carlos-granados (25 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")[![mho22](https://avatars.githubusercontent.com/u/17177411?v=4)](https://github.com/mho22 "mho22 (1 commits)")[![AppleDinger](https://avatars.githubusercontent.com/u/230699903?v=4)](https://github.com/AppleDinger "AppleDinger (1 commits)")[![shivammathur](https://avatars.githubusercontent.com/u/1571086?v=4)](https://github.com/shivammathur "shivammathur (1 commits)")[![derickr](https://avatars.githubusercontent.com/u/208074?v=4)](https://github.com/derickr "derickr (1 commits)")[![EgorGruzdev](https://avatars.githubusercontent.com/u/930669?v=4)](https://github.com/EgorGruzdev "EgorGruzdev (1 commits)")

### Embed Badge

![Health badge](/badges/php-debugger-php-debugger/health.svg)

```
[![Health](https://phpackages.com/badges/php-debugger-php-debugger/health.svg)](https://phpackages.com/packages/php-debugger-php-debugger)
```

###  Alternatives

[beyondcode/helo-laravel

HELO Laravel debug helper

90363.7k](/packages/beyondcode-helo-laravel)[phalcon/dd

This package will add the `dd` and `dump` helpers to your Phalcon application.

24296.9k27](/packages/phalcon-dd)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
