Евгений Иванов, у вас пробел в понимании того как работает веб сервер, я бы на вашем месте выкинул openserver и попробовал бы развернуть LAMP стек в wsl, тогда вы поймёте что, как и с чем взаимодействует
Евгений Иванов, Symfony и прочие вещи запускаются веб сервером в конкретной версии php а phpunit запускается из консоли без указания версии php и поэтому windows ищет php.exe во всех доступных PATH директориях
Vladimir-Hetman, функция substr считает не кол-во символов, а кол-во байт в строке, кириллица в юникоде копируется двумя байтами, отсюда у вас и получается 128 байт, хотя символов всего 95
Используйте функции с префиксом mb_
denism300, вам и не нужно в цикле обращаться упредыдущему элементу. Вы должны в foreach создавать новый массив, но в качестве индексов использовать id, если в новом массиве элемент с таким id существует то просто добавить в options значения
Ничего не мешает запустить скрипт в несколько инстансов
Только при выборке записей из БД нужно их блокировать чтобы другие инстансы не брали их в работу
абсолютли