Рекомендуемый инструмент отладки кода Xdebug

задняя часть PHP Docker PhpStorm

Написание кода всегда обходит необходимость отладки.Помимо UnitTest нам все еще нужно использовать Xdebug для отладки.

Итак, сегодня я расскажу о том, как использовать Xdebug на основе локальной среды Docker.

Использование здесь интегрировано в VS Code и PHPStorm соответственно.

Установите Xdebug

Все еще основано на оружии божественного уровня - Ларадоке. Давайте сначала посмотрим, как установить Xdebug на официальном сайте Laradock.

Install xDebug#

1 - First install xDebug in the Workspace and the PHP-FPM Containers:

a) open the .env file b) search for the WORKSPACE_INSTALL_XDEBUG argument under the Workspace Container c) set it to true d) search for the PHP_FPM_INSTALL_XDEBUG argument under the PHP-FPM Container e) set it to true

2 - Re-build the containers docker-compose build workspace php-fpm

Ссылаться на:Лара док.IO/документ ATI…

Мы модифицируем соответствующее место, а затемbuild, если появляется следующее сообщение об ошибке:

Попробуйте добавить внутренний источник, чтобы попробовать:

RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list

опять такиdocker-compose up -d nginxПосле этого под Windows/Mac используйте команду./php-fpm/xdebug statusПроверьте статус установки:

mark

Настроить Xdebug

В настоящее время для разработки используются IDE, и лично я считаю, что чаще всего используются VS Code и PHPStorm. Итак, давайте используем эти две IDE, чтобы поговорить о том, как использовать Xdebug.

VS Code

В VS Code, если плагин Xdebug не установлен, просто найдите и установите его напрямую:

mark

После установки добавьте конфигурацию среды Xdebug:

mark

Это будет проект.vscodeВ папке есть дополнительный файл конфигурации Xdebuglaunch.json, мы настраиваем номер порта с помощьюphp-fpmвнизXdebugПоследовательно, мы перенастраиваемpathMappingsпозволятьdockerПуть к проекту связан с локальным путем к проекту. детали следующим образом:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "XDebug listening to Laradock",
            "log": true,
            "type": "php",
            "request": "launch",
            "port": 9000,
            "pathMappings": {
                "/var/www/myrss": "${workspaceFolder}",
            }
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

Хорошо, давайте начнемXDebug, распечатайте следующее содержимое, что означает ожидание запроса:

Напишем демо и установим точки останова:

Artisan::command('hello', function () {
    $i = 0;
    $i++;

    return "hello".$i;
});

затем начнитеXdebug, и выполните команду:

php artisan hello

Мы можем видеть много ввода, вывода, точек останова и т.д.:

Среди них мы также можем видеть переменные в это время$iВ неинициализированном состоянии:

Мы продолжаем выполнение в этой точке останова:

PHPStorm

IP-адрес Docker по умолчанию под Mac или Windows 10: 10.0.75.1,

Давайте сначала добавим сервер, где:

  • имя: Лара док
  • Host: 10.0.75.1
  • сопоставления, эквивалентные сопоставлениям путей, настроенным кодом VS выше

Затем вы можете создать новую удаленную отладку PHP, где:

  • Сервер: связан с ларадоком, который мы построили выше.
  • Ключ IDE: он может соответствовать конфигурации в php-fpm от Laradock.

Что ж, мы можем использовать демо, создавать точки останова, запускать Debug и ждать запросов:

То же самое, выполнить команду:php artisan hello:

Продолжаем спускаться:

Суммировать

Хорошо используя Xdebug, мы можем более интуитивно понимать динамические изменения каждой переменной в методе, что может улучшить наше отслеживание и устранение проблем с кодом. Что касается того, как лучше использовать Xdebug на следующем этапе, это зависит от их реальных проектов и потребностей в разработке.

Ссылаться на

  1. Setting up xDebug with PHPUnit using Docker for Mac and PHPStorm Intel понимает — support.jet brains.com/train/en-US/co…

  2. Laradock + XDebug + MS Code? No problem medium.com/full-stack-…

  3. Конфигурация, используемая xdebug Ларадока на vscodeУууу. IT read01.com/content/152…

  4. Как установить VSCode XDebug в среде laradockblog.Scott Differential PressureA.com/post/2018/1…