rollun-callback
- библиотека, которая кроме полезных callable
объектов дает возможность передавать код на
выполнение другому процессу, машине или очереди. Так же эта библиотека дает возможность быстро поднять endpoint
для
работы webhook
- сервис, который сразу же возвращает управление, несмотря на длительность возможных операций.
При переходе на PHP v.8 и Laminas выявлены следующие проблемы.
По цепочке зависимостей, которую удалось установить, тянется пакет guzzle/guzzle: v3.9.0. В этом пакете используется расширение php-curl. В версиях php < 8 функции типа curl_init возвращали ресурс, и в коде самого пакета guzzle/guzzle: v3.9.0 есть много проверок типа
// В одних местах
$handler = curl_init();
...
// В других местах
if (!is_resource($handler)) {
throw new Exception();
}
Так как $handler теперь обьект, эти проверки не проходят и выбрасываются исключения.
Единственное решение, которое смог придумать, форкнуть устаревший пакет (уже давно не поддерживается и находится в архиве) guzzle/guzzle и переписать условия проверки с is_resource на instanceof.
Все закомментировал, нужно отдельно разбираться.
2.1. Метод \rollun\test\functional\Callback\Queues\Adapter\SqsAdapterTest::testCreateAdapterWithDeadLetterQueue()
При попытке получить с контейнера сервис DeadLetterQueue::class, выбрасывается исключение. Такой сервис не сконфигурирован.
В данном классе все тесты вызывают метод \rollun\callback\PidKiller\LinuxPidKiller::ps(), который был удален 25.06.2019
Поправил
Закомментировал все тесты