Download the PHP package romanfedorskij/message-bus-spiral without Composer
On this page you can find all versions of the php package romanfedorskij/message-bus-spiral. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download romanfedorskij/message-bus-spiral
More information about romanfedorskij/message-bus-spiral
Files in romanfedorskij/message-bus-spiral
Package message-bus-spiral
Short Description Message bus adapter for Spiral Framework
License MIT
Informations about the package message-bus-spiral
MessageBus Spiral
romanfedorskij/message-bus-spiral — адаптер Spiral Framework для romanfedorskij/message-bus v6.
Поддерживаемые версии: Spiral Framework ^3.16, RoadRunner Bridge ^3.8 || ^4.0.
Пакет не содержит отдельного registry builder. В v6 связи message -> action компилируются основным message-bus, а Spiral-пакет подключает:
Spiral\Tokenizerlistener для поиска классов с attributes;- compiler listener, который пишет compiled registry в runtime-файл;
- Spiral DI resolver;
- Spiral invoker для handler/middleware;
- Spiral Queue provider;
- Spiral Queue job для выполнения serialized envelope.
Установка
Конфигурация
В приложении нужно указать путь к compiled registry. Listener создаст этот файл при boot приложения:
compilerOptions необязателен. По умолчанию compilation падает только на ошибках registry.
Файл подключается как message_bus config.
Discovery через Spiral Tokenizer
MessageBusBootloader регистрирует listener в TokenizerListenerBootloader.
Listener получает классы с attributes:
CommandHandler;QueryHandler;EventSubscriber;MessageAlias.
После обхода проекта listener вызывает core MessageRegistryCompiler и сохраняет результат в registryFile.
Runtime MessageBus читает уже compiled registry через CompiledMessageRegistry::fromFile().
Runtime plan для long-running Spiral
После чтения compiled registry адаптер собирает RuntimePlanRegistry в памяти процесса:
- заранее подготавливает карту
bindingId -> plan; - заранее сортирует bindings по priority;
- заранее объединяет
flow middleware + binding middleware; - заранее объединяет
flow delivery + binding delivery; - автоматически подменяет default sync/async strategies на runtime-plan strategies.
Runtime plan хранит только class-string и immutable definition-данные. Объекты action и middleware не кешируются адаптером: их продолжает создавать Spiral DI в текущем scope. Это сохраняет корректную работу request/auth scope и подмен интерфейсов в long-running RoadRunner worker.
С core message-bus 6.1+ runtime plan использует binding-specific context: каждый middleware/handler invocation получает Envelope с текущим bindingId. Это важно для cache, audit, flow contract diagnostics и idempotency middleware.
Flow для Spiral Queue
transport используется как имя Spiral queue connection.
queue используется как queue name внутри options.
Async binding обязан иметь стабильный bindingId.
Worker
Producer сохраняет в Spiral Queue переносимый array payload.
Worker восстанавливает SerializedEnvelope и вызывает core worker:
PHP serialize() не используется.
Примеры
- Быстрое подключение bootloader и config
- Command handler и compiled registry
- Async flow через Spiral Queue
- Runtime plan в long-running процессе
- Contextless QueryHandler для capability
Тесты
Coverage gate:
Команда пишет Clover report в /tmp/messagebus-spiral-coverage.xml и падает, если line coverage ниже 80%.
All versions of message-bus-spiral with dependencies
spiral/framework Version ^3.16
spiral/roadrunner-bridge Version ^3.8 || ^4.0
romanfedorskij/message-bus Version ^6.0
nyholm/psr7 Version ^1.8