Skip to content

Debug ProcessMaker process triggers

tomolimo edited this page May 21, 2019 · 13 revisions

This section is under construction

Install and configuration

Xdebug

  1. Install on the PM server the Xdebug PHP extension (author Derick Rethans) from https://xdebug.org/docs/install (choose the method that fits your operating system)
  2. Configure Xdebug extension like following:

[php_xdebug]
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = ip_address_of_your_visual_studio_code
xdebug.remote_port = 9000
xdebug.remote_mode = req
xdebug.remote_autostart = 1
xdebug.auto_trace = off
xdebug.collect_assignments = on
xdebug.collect_return = on
xdebug.collect_vars = on
xdebug.dump_undefined = on

Note: ip_address_of_your_visual_studio_code is the IP address of your machine from which you want to start debugging. It's the machine hosting the Visual Studio Code. Don't use the xdebug.remote_connect_back option as it will get the IP address of the GLPI server, and not the IP address of the VSC machine.

VSC

  1. Install Visual Studio Code from https://code.visualstudio.com/ on the client machine
  2. Start VSC, and install "PHP Extension Pack" (author Felix Becker) from marketplace
  3. Switch to 'Debug' view
  4. Start a debug session (it will propose you to choose an environment, select PHP), verify that the 'launch.json' file is like following (adding serverSourceRoot and localSourceRoot):
{
   "version": "0.2.0",
   "configurations": [
      {
         "name": "Listen for Xdebug",
         "type": "php",
         "request": "launch",
         "port": 9000
      },
      {
         "name": "Launch currently open script",
         "type": "php",
         "request": "launch",
         "program": "${file}",
         "cwd": "${fileDirname}",
         "port": 9000
      }
   ]
}   

Debug session

  1. In PM server admin.
  2. In the trigger you want to debug, add a PHP function call to: xdebug_break(); at the place where you want a breakpoint to occur. Save the trigger.
  3. In VSC Explorer, open the folder defined above.
  4. Start a debug session using the 'Listen for Xdebug' options.
  5. You may disable the 'Everything' breakpoint which is set by default, it's in the 'Debug' view and in the breakpoint list (bottom left).
  6. Start PM serveur admin (or GLPI if you want to debug a trigger used in GLPI) in your browser
  7. Execute task by task your process until you reach the breakpoint.
  8. Don't forget to comment out the xdebug_break() function call when you are finished with your debug.
Clone this wiki locally