-
Notifications
You must be signed in to change notification settings - Fork 2
Debug ProcessMaker process triggers
This section is under construction
Copy content of zipped file processmaker_debug_triggers.zip into processmaker installation folder.
You should get a new folder in workflow/public_html/ named triggers
- Install on the PM server the xDebug PHP extension from https://xdebug.org/docs/install (choose the method that fits your operating system)
- Configure xDebug extension like following:
[php_xdebug]
zend_extension = "pathtoxdebugext/php_xdebug.dll"
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.remote_log="c:\temp\xd.log"
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.
- Install Visual Studio Code from https://code.visualstudio.com/ on the client machine
- Start VSC, and install "PHP Extension Pack" (writer Felix Becker) from marketplace
- 'Open Folder' or 'Create a folder' like
/pm/
- Switch to 'Debug' view
- 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,
"serverSourceRoot": "_local_path_to_pm_folder_on_server_used_by_xdebug_",
"localSourceRoot": "_remote_path_to_pm_folder_on_server_used_by_vsc_"
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
Example of paths for me:
local_path_to_pm_folder_on_server_used_by_xdebug: L:\inetpub\wwwroot\pm
remote_path_to_pm_folder_on_server_used_by_vsc: \\glpi.com\l$\inetpub\wwwroot\pm
-
in PM server admin, set the Process debug setting to Yes for the process you want to debug.
-
In VSC Explorer, open folder
_remote_path_to_pm_folder_on_server_used_by_vsc_/workflow/public_html/triggers
-
open the trigger file you want to debug
-
Toggle a breakpoint where you need. Note: in the trigger you want to debug, you may add PHP lines like
xdebug_break();
(not mandatory) -
You may disable the 'Everything' breakpoint which is set by default, it's in the 'Debug' view and in the breakpoint list (bottom left).
-
Start PM serveur admin (or GLPI if you want to debug a trigger used in GLPI) in your browser
-
Execute task by task your process until you reach the breakpoint