Project:DebuggingPHPinMediawiki
Most of the code in MediaWiki and its extensions is written in PHP.
For an overview, there are several possibilities including logs and debugging output on MediaWiki pages listed here: https://www.mediawiki.org/wiki/Manual:How_to_debug
XDEBUG in Docker:
This is about to setup debugging with breakpoints etc. with xdebug.
Starting from portal-compose, adapt your docker-compose.override.yml as suggested in the Readme.md
PHPStorm setup
Setting up PHPStorm IDE with XDEBUG and Containers.
There are two major steps involved in set up:
- Setting up a debugging configuration with localhost and port 9000, IDE Key: PHPSTORM
- Setting up directory mapping, this maps local code-directories to wikibase container, so they can be used as sourcecode for debugging.
- Usually it is sufficient just to map the extensions directories which are edited (in example "/extensions-dev/MathSearch" to "/var/www/html/extensions/MathSearch/"
- For setting breakpoints in the complete MediaWiki, download the corresponding source-code for MediaWiki and place it in extensions dev. The root can be linked to "/var/www/html"
- Both steps are can be seen in many web-documentations, example is this from step 4 (port has to be changed from 80 to 9000, IDEKEY is PHPSTORM)
To start debugging, call any page of the wiki while running the debugging configuration. Then, a dialogue by IDE appears which has to be accepted.
If the directories are mapped correctly you can now set breakpoints in the code and the ide stops at these. If there is any issue during the set up, check the steps in troubleshooting section.