Отладка PHP-приложений — важнейшая часть процесса разработки, поскольку она позволяет разработчикам эффективно выявлять и устранять проблемы. Docker, популярная платформа контейнеризации, предоставляет удобный способ создания воспроизводимых сред разработки. В этой статье мы рассмотрим различные методы отладки PHP-приложений в Docker с помощью Xdebug, мощного инструмента отладки.
Метод 1: удаленная отладка Xdebug с помощью PhpStorm
Для начала мы рассмотрим, как настроить удаленную отладку Xdebug с помощью PhpStorm, популярной PHP IDE. Выполните следующие действия:
-
Установить расширение Xdebug в образ PHP Docker.
FROM php:7.4-fpm RUN pecl install xdebug RUN docker-php-ext-enable xdebug -
Настройте Xdebug в контейнере PHP Docker.
[Xdebug] zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so xdebug.remote_enable=1 xdebug.remote_autostart=1 xdebug.remote_host=docker.host.internal xdebug.remote_port=9000 -
Настройте PhpStorm для удаленной отладки.
- Откройте PhpStorm, перейдите в «Настройки» ->«Языки и платформы» ->«PHP» ->«Отладка».
- Установите «Порт отладки» на 9000.
- Включите параметр «Может принимать внешние подключения».
- Создайте новую конфигурацию сервера для Docker.
- Установите для параметра «Хост» значение
docker.host.internal, а для параметра «Порт» — значение 80. - Установите «Отладчик» на Xdebug.
-
Запустите контейнер Docker и запустите приложение PHP.
-
Установите точки останова в своем PHP-коде в PhpStorm и запустите приложение для начала отладки.
Метод 2. Удаленная отладка Xdebug с помощью кода Visual Studio
Если вы предпочитаете использовать код Visual Studio в качестве среды IDE, вы можете настроить удаленную отладку Xdebug, выполнив следующие действия:
-
Установите расширение PHP Debug в Visual Studio Code.
-
Настройте Xdebug в контейнере PHP Docker аналогично предыдущему методу.
-
Обновите конфигурацию кода Visual Studio, добавив следующее в
.vscode/launch.json:{ "version": "0.2.0", "configurations": [ { "name": "Docker Xdebug", "type": "php", "request": "launch", "port": 9000, "pathMappings": { "/var/www/html": "${workspaceFolder}" }, "ignore": ["/vendor//*.php"] } ] } -
Запустите контейнер Docker и запустите приложение PHP.
-
Установите точки останова в своем PHP-коде в Visual Studio Code и запустите приложение для начала отладки.
Метод 3: профилирование Xdebug
Xdebug также предоставляет возможности профилирования для анализа производительности вашего PHP-приложения. Выполните следующие действия:
-
Обновите конфигурацию Xdebug в контейнере PHP Docker:
[Xdebug] zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so xdebug.profiler_enable=1 xdebug.profiler_output_dir=/tmp/profiler -
Запустите контейнер Docker и запустите приложение PHP.
-
Выполните действия в PHP-приложении, которое вы хотите профилировать.
-
Проанализируйте созданные выходные файлы профилировщика, чтобы выявить узкие места в производительности.
Отладка PHP-приложений в Docker с помощью Xdebug может значительно улучшить рабочий процесс разработки. Независимо от того, выберете ли вы PhpStorm или Visual Studio Code в качестве своей IDE, методы, описанные в этой статье, предоставляют мощные возможности отладки. Xdebug не только позволяет вам пошагово выполнять код и проверять переменные, но также позволяет выполнять профилирование для анализа производительности. Используя эти методы, вы можете эффективно отлаживать и оптимизировать свои PHP-приложения в Docker.