Files
2024-12-10 15:08:16 +01:00

40 lines
1.3 KiB
Markdown

# Debugging
The farmOS development Docker image comes pre-installed with
[XDebug](https://xdebug.org) 3, which allows debugger connections on port 9003.
XDebug can be configured to discover the client host automatically with the
following `extra_hosts` and `environment` configuration in `docker-compose.yml`:
extra_hosts:
- host.docker.internal:host-gateway
environment:
XDEBUG_MODE: debug
XDEBUG_CONFIG: client_host=host.docker.internal
## PHPStorm
If you are using the PHPStorm IDE, some additional environment variables are
necessary:
XDEBUG_SESSION: PHPSTORM
PHP_IDE_CONFIG: serverName=localhost
For example:
extra_hosts:
- host.docker.internal:host-gateway
environment:
XDEBUG_MODE: debug
XDEBUG_CONFIG: client_host=host.docker.internal
XDEBUG_SESSION: PHPSTORM
PHP_IDE_CONFIG: serverName=localhost
With this configuration in place, enable the "Start listening for PHP Debug
Connections" option. Add a breakpoint in your code, load the page in your
browser, and you should see a prompt appear in PHPStorm that will begin the
debugging session and pause execution at your breakpoint.
This also works with command-line scripts like `drush`. You may need to map the
path to Drush (`vendor/drush`) in the PHPStorm debugger config.