spiral/roadrunner-bridge
Integrates RoadRunner with the Spiral Framework, adding bootloaders for HTTP, queues, KV cache, gRPC, Centrifugo, TCP, metrics, logging, locks, and scaffolding. Requires PHP 8.1+ and Spiral Framework 3.14+.
composer require spiral/roadrunner-bridge:^4.0 for new apps. If you are coming from v3.6.0, budget the upgrade as a major: the v4 changelog is dominated by BC-sensitive work — Make implementations internal, Remove deprecations, logger handler changes, and interceptor argument normalization.$PATH. Pin the binary version in your Dockerfile/CI image alongside the bridge version — several v4 changes (log normalization, EXIT handling, interceptor args) couple bridge behaviour to the server protocol.HttpKernel through custom routing. In v4 the implementation classes are explicitly internal, so code against the documented public contracts only — no extending or type-hinting concrete bridge classes../rr serve -d. Immediately after upgrading, smoke-test four things the release touched: worker shutdown/EXIT behaviour, log output (levels, bubbling, escaping), TCP/Centrifugo interceptor payloads, and anything that touched deprecations in v3..rr.yaml: Keep RoadRunner config adjacent to .env. Example shape (verify keys against your pinned RoadRunner version):
server:
command: "php public/index.php"
http:
address: 0.0.0.0:8080
pool:
num_workers: 4
max_jobs: 0
logs:
level: debug
output: stderr
logs.level and logs.output are what you intend.max_jobs set or custom worker loops, where a previously silent no-op exit can now actually terminate the worker..env overrides: RoadRunner does not read .env at runtime unless you explicitly trigger it. Bake critical values into .rr.yaml or pass them as environment flags at start.stderr at debug level. Remember dd()/dump() inside a worker goes to RoadRunner logs, not the CLI — a common “my dump vanished” moment.config:cache, route:cache, view:cache) before starting RoadRunner; persistent workers cannot meaningfully recompile caches at runtime.max_jobs > 0 for long-lived ORM/Doctrine connections. Recycle workers periodically in production rather than waiting for OOM.How can I help you explore Laravel packages today?