Debugger
PHP 5.6 was the first version of PHP to ship with
phpdbg, an interactive debugger that can be used
locally on the command-line as well as remotely via client
applications. It is inspired by GDB, the de facto standard for
debugging UNIX programs, and can be invoked using the
phpdbg command.
When you download PHP 7 from https://php.net and
build the PHP interpreter yourself, phpdbg is not built
by default. You need to pass the --enable-phpdbg option
to configure to enable it. If you use a package
provided by the vendor of your Linux distribution to manage your PHP
environment, then you probably need to install a separate package to
get the phpdbg binary.
For PHP 7, phpdbg has been expanded with code
coverage functionality. This means that you can now collect,
process, and report code coverage data with PHPUnit, for instance,
without having to install a third-party extension such as Xdebug or
PCOV. To use PHP 7’s built-in code coverage functionality with
PHPUnit, just invoke PHPUnit using the phpdbg binary
instead of the php binary as shown below:
$ phpdbg -qrr phpunit.phar --coverage-clover coverage.xml tests
PHPUnit 9.2.2 by Sebastian Bergmann and contributors.
............................................
Time: 00:01.788, Memory: 6.00 MB
OK (44 tests, 70 assertions)
Generating code coverage report in Clover XML format ... done
The -qrr command-line option for the
phpdbg invocation shown above instructs
phpdbg to execute a script and quit after the execution
finished without debugging the PHP code that is executed.