- Added: support for composer/pcre versions 2 and 3.
- Fixed: regression in 3.0.1 affecting Xdebug 2
- Fixed: error when calling
isXdebugActive
before class instantiation.
- Removed: support for legacy PHP versions (< PHP 7.2.5).
- Added: type declarations to arguments and return values.
- Added: strict typing to all classes.
- Added: support, type annotations and refactoring for stricter PHPStan analysis.
- Added: support for
xdebug_info('mode')
in Xdebug 3.1.
- Added: support for Psr\Log versions 2 and 3.
- Fixed: remove ini directives from non-cli HOST/PATH sections.
- Fixed: don't restart if the cwd is a UNC path and cmd.exe will be invoked.
- Break: this is a major release, see UPGRADE.md for more information.
- Break: removed optional
$colorOption
constructor param and passthru fallback.
- Break: renamed
requiresRestart
param from $isLoaded
to $default
.
- Break: changed
restart
param $command
from a string to an array.
- Added: support for Xdebug3 to only restart if Xdebug is not running with
xdebug.mode=off
.
- Added:
isXdebugActive()
method to determine if Xdebug is still running in the restart.
- Added: feature to bypass the shell in PHP-7.4+ by giving
proc_open
an array of arguments.
- Added: Process utility class to the API.
- Fixed: fail restart if
proc_open
has been disabled in disable_functions
.
- Fixed: enable Windows CTRL event handling in the restarted process.
- Fixed: use
proc_open
when available for correct FD forwarding to the restarted process.
- Fixed: exception if 'pcntl_signal' is disabled.
- Fixed: restore SIGINT to default handler in restarted process if no other handler exists.
- Fixed: ignore SIGINTs to let the restarted process handle them.
- Fixed: restart fails if an ini file is empty.
- Fixed: add environment changes to
$_ENV
if it is being used.
- Fixed: exit call being blocked by uopz extension, resulting in application code running twice.
- Fixed: fail restart if
passthru
has been disabled in disable_functions
.
- Fixed: fail restart if an ini file cannot be opened, otherwise settings will be missing.
- Added:
setPersistent
method to use environment variables for the restart.
- Fixed: improved debugging by writing output to stderr.
- Fixed: no restart when
php_ini_scanned_files
is not functional and is needed.
- Fixed: fatal error with apc, when using
apc.mmap_file_mask
.
- Added: debug information using
XDEBUG_HANDLER_DEBUG
.
- Added: fluent interface for setters.
- Added:
PhpConfig
helper class for calling PHP sub-processes.
- Added:
PHPRC
original value to restart stettings, for use in a restarted process.
- Changed: internal procedure to disable ini-scanning, using
-n
command-line option.
- Fixed: replaced
escapeshellarg
usage to avoid locale problems.
- Fixed: improved color-option handling to respect double-dash delimiter.
- Fixed: color-option handling regression from main script changes.
- Fixed: improved handling when checking main script.
- Fixed: handling for standard input, that never actually did anything.
- Fixed: fatal error when ctype extension is not available.
- Added:
getRestartSettings
method for calling PHP processes in a restarted process.
- Added: API definition and @internal class annotations.
- Added: protected
requiresRestart
method for extending classes.
- Added:
setMainScript
method for applications that change the working directory.
- Changed: private
tmpIni
variable to protected for extending classes.
- Fixed: environment variables not available in $_SERVER when restored in the restart.
- Fixed: relative path problems caused by Phar::interceptFileFuncs.
- Fixed: incorrect handling when script file cannot be found.
- Added: PSR3 logging for optional status output.
- Added: existing ini settings are merged to catch command-line overrides.
- Added: code, tests and other artefacts to decouple from Composer.
- Break: the following class was renamed:
Composer\XdebugHandler
-> Composer\XdebugHandler\XdebugHandler