Отладка cli-скриптов на php из docker-контейнера в NetBeans штатными средствами

Ну и заголовок… текста тоже много, готовься.

Привет. Я тут на досуге написал скрипт, которым подменил php-интерпретатор в NetBeans.

Об установке и настройке этой IDE я подробно рассказывал в этой статье: Настройка среды php-разработки с нуля на NetBeans + php + docker + xdebug3. Она тоже будет тебе полезна, часть информации по отладке ты можешь черпануть оттуда. Здесь я буду запускать скрипты штатными средствами.

Как известно, NetBeans сам не умеет запускать консольные скрипты, которые находятся внутри контейнера. Здесь же я покажу как я решил эту проблему и теперь запускаю скрипты не из терминала, а одной кнопкой в гуйне. В целом, как показывает практика, решение работает исправно.

В прошлом посте я придумал простейший скрипт, который в этом немного помог. Вот его исходный вид:

#!/bin/bash
docker exec test-php php \
    -dxdebug.mode=debug \
    -dxdebug.start_with_request=1 \
    `basename ${BASH_ARGV[0]}` \
    "${@:1:$#-1}"

Но он был неуниверсальным и грубым. Он не учитывал много чего, что можно настроить в разделе ‘Run Configuration’ окна ‘Project Properties’:

Laravel: скаляры в замыканиях маршрутов и контроллерах

Привет. Для начала небольшое предисловие и контекст.

Это мой перевод оригинальной заметки “Primitive Types in Controllers and Closure Routes” от Paul Redmond (кеш). Я нашёл её когда пытался разобраться с одной маленькой проблемой при работе с маршрутами и их параметрами в Laravel.

Суть заключена в трёх символах и одном пробеле, а случай не такой уж частый.

Настройка среды php-разработки с нуля на NetBeans + php + docker + xdebug3

Привет. Это здоровенный мануал-шпаргалка по настройке этой IDE для php-разработки. Здесь будет много текста и картинок.

Полагаю, он больше сгодится для российских и белоруских разработчиков, переходящих c PhpStorm, ибо есть предпосылочка. (В конце поста я добавил свои соображения по сабжу.) В этом контексте было решено построить себе запасной инструментарий. А ещё я всё-таки закрыл гештальт и познакомился с Netbeans, как давно хотел.

На деле эта IDE во многих отношениях проще шторма, но местами и переусложнена. Постараюсь раскрыть здесь это поподробнее. Поэтому статья иногда будет дополняться и корректироваться.

Версия Netbeans на сию секунду — 17.

В этой статье я установлю NB, настрою его, разверну тестовый проект с php8.1 и xdebug на контейнерах и настрою отладку php-скриптов в разных позах.

Я обкатал стек на двух ПК, так что сетап проверен.

Почему Laravel пытается подключиться к БД при инициализации?

assorted electric cables
Photo by John Barkiple on Unsplash

Столкнулся на работе с занятной проблемой на Laravel 9.

Однажды, я, прогоняя тесты phpunit, никак не мог добиться их удачного выполнения: они постоянно падали, но написаны гарантированно верно, вчера их запускал. Через какое-то всё прошло. Я не был удивлён: на БД-песочнице проводились работы, вскоре она была перезапущена и я таки прогнал тесты с успехом.

Но осознав произошедшее меня обдало ледяным потом — стоп, а какого хуя? В моих тестах нет подключения к БД!