XDebug предлагает директиву конфигурации «xdebug.profiler_enable_trigger», которая позволяет активировать профилирование, передавая параметр GET или POST «XDEBUG_PROFILE» при вызове скрипта через HTTP. Это удобно, если вы не хотите выполнять профилирование для ВСЕХ ваших сценариев, но только для нескольких особых случаев без постоянного изменения конфигурации PHP.
Есть ли способ добиться того же поведения для программ PHP командной строки? Я пытался передать «XDEBUG_PROFILE» в качестве аргумента командной строки, но это не сработало.
В общем, профилирование командной строки PHP работает хорошо, но я бы хотел иметь такую же гибкость для каждого вызова, как и в браузере и HTTP-сервере.
Какие-либо предложения?
php
configuration
command-line
profiling
xdebug
selfawaresoup
источник
источник
Ответы:
Вы можете передать параметры INI с
-d
флагом:php -d xdebug.profiler_enable=On script.php
.источник
alias phpp="php -d xdebug.profiler_enable=1"
. Таким образом, когда вы не хотите, чтобы профиль просто использоватьphp
и когда вы используетеphpp
.alias xphp="php -d xdebug.profiler_enable=On -d xdebug.profiler_output_dir=."
. Это всегда сохраняет выходные данные отладки в вашем текущем рабочем каталоге.phpp.cmd
файл, в которомphp -d xdebug.profiler_enable=On %*
вы можете просто запуститьphpp <args>
.Я получил эту работу на Ubuntu / Netbeans:
Тогда это просто случай запуска отладки в netbeans и выполнения «php myscript.php» в командной строке.
источник
с PhpStorm на удаленном веб-сервере я использую эту команду:
где
server_name
обозначает имя сервера в конфигурации PhpStorm проектаисточник
alias xphp="XDEBUG_CONFIG="idekey=PHPSTORM" PHP_IDE_CONFIG="serverName=example.com" php -d memory_limit=1G -d xdebug.remote_host=
echo $ SSH_CLIENT | cut -d \ "= \" -f 2 | awk '{print $ 1}',"
поэтому, когда я хочу отладить, я использую xphp вместо phpКак описано на странице удаленной отладки Xdebug , профилирование также можно включить с помощью
XDEBUG_CONFIG
переменной среды, включив директиву profile_enable = 1:источник
Подобный, но другой процесс для того, чтобы заставить его работать с Netbeans при разработке на виртуальной машине.
Необходимо передать флаг удаленного включения, флаг автоматического запуска, флаг ide и имя вашего удаленного хоста.
источник
Я создал сценарий оболочки для обработки отладки клиента.
имя скрипта: phpdebug
Я поместил этот скрипт в
/usr/bin
и дал ему разрешения на выполнение.Сценарий принимает аргументы, переданные в phpdebug, и вызывает php с аргументами xdebug и добавляет аргументы, переданные в сценарий оболочки, $ * в конце.
источник
XDEBUG_CONFIG
переменную окружения. Только это иxdebug.remote_host
настройка заставили это работать.В PhpStorm 7 с использованием WAMP я заставил это работать, скопировав мои уже работающие настройки xdebug из C: \ wamp \ bin \ apache \ apache2.2.22 \ bin \ php.ini в раздел xdebug C: \ wamp \ bin \ php \ phpX.YZ \ php.ini. Затем я запустил свой скрипт так:
Это даже работало для отладки скриптов Laravel Artisan.
источник
Документация от Jetbrains
Чтобы запустить сценарий с отладкой с помощью переключателей командной строки PHP Установите переменную среды, которая сообщит XDebug о подключении к IDE:
Windows / MacOS / Linux
Здесь idekey должен иметь случайное значение.
Запустите PHP со следующими параметрами командной строки:
Вы можете использовать 10.0.2.2 вместо 127.0.0.1 с Vagrant (см. Соответствующий вопрос SO).
источник