Command Line Interface Guidelines looked interesting but I didn’t have time to closely read the whole thing.
So to enable profiling on the command line run your script in PHP like this:
php -d xdebug.profiler_enable=1 /path/to/script.php
You need to have configured xdebug in php.ini, I do it with a file in
/etc/php/7.2/cli/conf.d/xdebug.ini that looks like this:
;xdebug.profiler_enable = 0 xdebug.profiler_output_dir = "/tmp/xdebug" xdebug.profiler_output_name = "cachegrind.out.%p"
Note: you can enable profiling for all scripts with xdebug.profiler_enable = 1
Today I had an interesting problem.
When I ran:
# php test.php | less
The ‘less’ program entered input mode and the up and down arrow (and j, k keys) weren’t working.
Eventually I figured out a solution:
# php test.php < /dev/null | less
The PHP CLI seems to be interfering with the terminal and piping in /dev/null to PHP CLI stdin fixes the problem!