• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

valkyrjaio / valkyrja / 24230398784
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: 26.x
DEFAULT BRANCH: master
Ran 10 Apr 2026 06:49AM UTC
Jobs 1
Files 1094
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

10 Apr 2026 06:47AM UTC coverage: 100.0%. Remained the same
24230398784

push

github

web-flow
[Application] Add persistent worker HTTP support (#721)

# Description

Add persistent worker HTTP support

Introduces first-class support for long-running PHP worker runtimes
(FrankenPHP, OpenSwoole, RoadRunner) through a parent/child isolation
pattern that prevents request-scoped state from bleeding
  between requests.

What changed

New: WorkerHttp abstract entry class
(Application/Entry/Abstract/WorkerHttp)

The base class for all worker runtime integrations. Provides two static
methods:
- bootstrap(HttpConfig) — runs the full application bootstrap once at
process start, then calls bootstrapParentServices() to force-resolve any
services that should live in the frozen parent. Returns
the parent application, which must not be written to again.
- handle(ApplicationContract, ContainerData, ServerRequestContract) —
creates an isolated child container and child application per request,
dispatches through the standard seven-stage HTTP
  pipeline, then discards the child. The parent is never mutated.

Concrete runtime integrations extend this class and supply the request
loop. They are shipped as separate packages (valkyrja/frankenphp,
valkyrja/openswoole, valkyrja/roadrunner).

New: ChildContainer — the default per-request container. Delegates to
the parent via ContainerContract (portable, works with any
implementation). Takes a ContainerData snapshot on construction; PHP
copy-on-write means each child gets its own logical copy of the parent's
maps at zero cost until it writes.

New: NativeChildContainer — a PHP-specific alternative that accesses the
parent's protected fields directly instead of calling methods,
eliminating any risk of accidentally triggering deferred
publishing or writing to parent state. Requires a concrete Container
parent. Use only when profiling confirms a bottleneck at high child
construction rates.

Both containers share the same invariant: neither triggers deferred
resolution in the parent. A child reuses a parent singleton only ... (continued)

177 of 177 new or added lines in 9 files covered. (100.0%)

13032 of 13032 relevant lines covered (100.0%)

16.52 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24230398784.1 10 Apr 2026 06:49AM UTC 1094
100.0
GitHub Action Run
Source Files on build 24230398784
  • Tree
  • List 1094
  • Changed 7
  • Source Changed 7
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24230398784
  • 073035f6 on github
  • Prev Build on 26.x (#24113389060)
  • Next Build on 26.x (#24360452849)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc