rollun-com / rollun-callback
Callback
Requires
- php: ^8.0
- ext-json: *
- ext-openssl: *
- aws/aws-sdk-php: ^3.334
- dragonmantank/cron-expression: ^3.4
- laminas/laminas-db: ^2.13.4
- laminas/laminas-diactoros: ^2.8.0
- laminas/laminas-http: ^2.15
- laminas/laminas-servicemanager: ^3.10
- laminas/laminas-stratigility: ^3.5.0
- opis/closure: ^4.3.1
- rollun-com/rollun-logger: ^7.7.0
- rollun-com/rollun-utils: ^9.0.0
- symfony/filesystem: ^6.0
- symfony/finder: ^6.0
- symfony/lock: ^6.0
Requires (Dev)
- filp/whoops: ^2.16
- laminas/laminas-config-aggregator: ^1.7
- laminas/laminas-development-mode: ^3.10
- laminas/laminas-stdlib: ^3.16
- mezzio/mezzio: ^3.9
- mezzio/mezzio-fastroute: ^3.4
- mezzio/mezzio-helpers: ^5.8
- phpunit/phpunit: ^9.5.10
- rector/rector: ^2.0
- symfony/dotenv: ^6.0.3
This package is auto-updated.
Last update: 2026-06-26 18:08:45 UTC
README
rollun-callback - библиотека, которая кроме полезных callable объектов дает возможность передавать код на
выполнение другому процессу, машине или очереди. Так же эта библиотека дает возможность быстро поднять endpoint для
работы webhook - сервис, который сразу же возвращает управление, несмотря на длительность возможных операций.
Переход на версию php 8
При переходе на PHP v.8 и Laminas выявлены следующие проблемы.
1. Проблема с ресурсами CURL
По цепочке зависимостей, которую удалось установить, тянется пакет 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. Проблемы с тестами
Все закомментировал, нужно отдельно разбираться.
2.1. Метод \Rollun\Test\Functional\Callback\Queues\Adapter\SqsAdapterTest::testCreateAdapterWithDeadLetterQueue()
При попытке получить с контейнера сервис DeadLetterQueue::class, выбрасывается исключение. Такой сервис не сконфигурирован.
2.2. Класс \Rollun\Test\Functional\Callback\PidKiller\WorkerManagerTest
В данном классе все тесты вызывают метод \rollun\callback\PidKiller\LinuxPidKiller::ps(), который был удален 25.06.2019
Поправил
2.3. Класс \Rollun\Test\Unit\Callback\Queues\Adapter\SqsAdapterTest
Закомментировал все тесты