CodeIgniter 4: Подготовка к PHPUnit. Устанавливаем Xdebug в XAMPP (Windows 32-разрядная (x86))

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Благодарю за отклики


Получив разноплановые отклики в виде комментариев и «кармы» на свою первую статью на Хабре «Фреймворк на PHP: CodeIgniter 4. «Лёгкий пример» использования Database Migrations (миграций) и Seeding (посев)», особенно хочется отметить тех членов сообщества, которые разделили точку зрения автора и в своих комментариях нашли нужные слова, чтобы поддержать автора в его намерении поделиться впечатлениями, что CodeIgniter 4 — это актуально.



Предполагалось, что заинтересованный читатель прочтёт статью и посмотрит, а то и установит к себе на локальный компьютер, код уже готового репозитория на GitHub'е, а необходимые пояснения посмотрит в документации CodeIgniter 4 «Build Your First Application» («Создайте свое первое приложение»). Благо, что статья насыщена всевозможными достаточно детальными ссылками.



Продолжая придерживаться простого принципа бритвы Оккамы: «Не следует множить сущности без необходимости» и дополняя его одним из принципов инженерного (научного) мировоззрения «ссылки на первоисточники», рассмотрим как установить Xdebug в XAMPP на локальном компьютере, а именно в Windows x86 (32 разряда).



Зачем нужен Xdebug?


  • Xdebug — это расширение для PHP, которое позволяет, помимо прочего, производить анализ покрытия кода, т.е с его помощью можно увидеть какие части вашего кода выполняются при запуске модульных тестов PHPUnit.
  • В файле codeigniter4-build-your-first-application/tests/README.md в разделе «Requirements» («Требования») прямо говорится: «You also need to install XDebug in order for code coverage to be calculated successfully ().» («Вам также необходимо установить XDebug для успешного расчёта покрытия кода.»)
  • Поскольку приложение из «Лёгкого примера» — предмет статьи, с которой начиналась данная статья, построено на базе «CodeIgniter 4 app starter». («CodeIgniter 4 начальное приложение»), то там тоже есть файл appstarter/tests/README.md с таким же требованием по Xdebug.
  • Хотя в самой документации Codeigniter4 Xdebug упоминается один раз, и то вскользь, в разделе «Replace var_dump», кажется разумным следовать технической документации на GitHub'е. Поэтому Xdebug желательно установить на свой локальный компьютер в XAMPP.


Как установить Xdebug в XAMPP (Windows 32-разрядная (x86))?



Большим подспорьем в решении данного вопроса автору данной статьи оказало ознакомление со следующими статьями на английском языке:


  • «Installing Xdebug for XAMPP with PHP 7.x», odan, 2021. (Поставил звезду на GitHube. Был 1225'ым.)
  • «Installing XDEBUG for XAMPP with PHP in Windows», Ahmed Thaajwer, 2019.

В каждой статье есть много полезного и интересного.



Технические требования задачи


Будем руководствоваться следующими техническими требованиями:


  • Установить Xdebug
  • в XAMPP на локальном компьютере с Windows x86 (32 разряда)
  • с PHP 7.* .
  • Установить, если потребуется в вашей конфигурации, файл
    vc_redist.x86.exe
    с «The latest supported Visual C++ downloads».
  • Использовать Git Bash.
  • Текст сопровождения решения задачи должен быть на русском.


Установка Xdebug в XAMPP


Шаг 1. Тестируем наличие Xdebug


  • Запускаем (перезапускаем) XAMPP.
  • Открываем Git Bush в любом каталоге (директории, папке).
  • В командной строке Git Bush запускаем команду с опцией
    php -v


Если вы видите что-то наподобие :




with Xdebug v2.9.7
, то

всё получилось или и так всё было.



Если нет и перед вами что-то такое :



, то переходим к шагу 2.

Шаг 2. Скачиваем динамическую библиотеку Xdebug


На сайте Xdebug на странице Downloads в разделе «Latest Release» и секции «Windows binaries» выбираем актуальную для вас ссылку для скачивания динамической библиотеки :



Для продолжения работы в рамках настоящей статьи актуальна Windows binaries:


PHP 7.3 VC15 TS (32 bit)
.

Шаг 3. Перемещаем загруженный файл dll в: C:\xampp\php\ext\


Скаченный файл в нашем случае это :


php_xdebug-2.9.7-7.3-vc15.dll

перемещаем (копируем) в каталог

pathBeforeYourXAMPP\xampp\php\ext\



Шаг 4. Редактируем файл php.ini


Открываем в вашем любимом редакторе файл

pathBeforeYourXAMPP\xampp\php\php.ini


  • Отключаем буферизацию вывода:
    output_buffering = Off


  • Прокручиваем вниз до раздела «XDebug» (или создаём его) и копируем / вставляем ниже представленные строки:
    [XDebug]
    zend_extension="c:\xampp\php\ext\php_xdebug-2.9.7-7.3-vc15.dll"
    xdebug.remote_autostart=1
    xdebug.profiler_append=0
    xdebug.profiler_enable=0
    xdebug.profiler_enable_trigger=0
    xdebug.profiler_output_dir="c:\xampp\tmp"
    ;xdebug.profiler_output_name="cachegrind.out.%t-%s"
    xdebug.remote_enable=1
    xdebug.remote_handler="dbgp"
    xdebug.remote_host="127.0.0.1"
    xdebug.remote_log="c:\xampp\tmp\xdebug.txt"
    xdebug.remote_port=9000
    xdebug.trace_output_dir="c:\xampp\tmp"
    ;36000=10h
    xdebug.remote_cookie_expire_time=36000

    Получаем, что-то на вроде этого :





Шаг 5. Предпоследний


  • Переходим к «Шагу 1».


Послесловие


Иногда, если у вас возникает ошибка, проверьте ваш файл


php.ini
.

Возможно, что в файле есть дополнительный код zend_extension

zend_extension=...
, тогда его нужно закомменитровать «;»
;zend_extension=...


Буду рад, если этот пост окажется для кого-то полезным.

Источник: https://habr.com/ru/post/572402/


Интересные статьи

Интересные статьи

В этой статье мы автоматизируем процесс сборки и установки Linux-системы на микроконтроллер STM32MP157-DK2. ОС будет обладать минимальной функциональностью, но зато мы соберём из исхо...
В этой статье мы расскажем, как оптимизировать крупный проект в «Битрикс24» и увеличить его производительность в 3 раза, изменяя настройки MySQL и режим питания CPU. Дано Корпоративн...
В нашем блоге мы уже не один раз рассказывали о переезде в Нидерланды (раз, два). Разработчики, которые оказались в Амстердаме в один голос говорят о том, что с точки зрения технолог...
Те, кто собираются открывать интернет-магазин, предварительно начитавшись в интернете о важности уникального контента, о фильтрах, накладываемых поисковиками за копирование материалов с других ресурсо...
Мы закончили изучение тематики, необходимой для успешной сдачи экзамена ICND1 курса CCNA 100-105, поэтому сегодня я расскажу вам, как зарегистрироваться на сайте Pearson VUE для сдачи этого экзам...