Написание кода всегда обходит необходимость отладки.Помимо 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
Проверьте статус установки:
Настроить Xdebug
В настоящее время для разработки используются IDE, и лично я считаю, что чаще всего используются VS Code и PHPStorm. Итак, давайте используем эти две IDE, чтобы поговорить о том, как использовать Xdebug.
VS Code
В VS Code, если плагин Xdebug не установлен, просто найдите и установите его напрямую:
После установки добавьте конфигурацию среды Xdebug:
Это будет проект.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 на следующем этапе, это зависит от их реальных проектов и потребностей в разработке.
Ссылаться на
Setting up xDebug with PHPUnit using Docker for Mac and PHPStorm Intel понимает — support.jet brains.com/train/en-US/co…
Laradock + XDebug + MS Code? No problem medium.com/full-stack-…
Конфигурация, используемая xdebug Ларадока на vscodeУууу. IT read01.com/content/152…
Как установить VSCode XDebug в среде laradockblog.Scott Differential PressureA.com/post/2018/1…