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

valkyrjaio / valkyrja-starter-app-php / 30376619544
100%

Build:
DEFAULT BRANCH: 26.x
Ran 28 Jul 2026 04:06PM UTC
Jobs 1
Files 32
Run time 1min
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

28 Jul 2026 04:05PM UTC coverage: 100.0%. Remained the same
30376619544

push

github

web-flow
[Http] Move the OpenSwoole, RoadRunner, and FrankenPHP entries into the Http namespace (#179)

# Description

Moves the OpenSwoole, RoadRunner, and FrankenPHP entry points into the
`App\Http`
namespace and renames each class after the runtime that drives it, so
the three
runtimes sit alongside the CGI entry they are variants of.

They were `App\OpenSwoole\App`, `App\RoadRunner\App`, and
`App\FrankenPhp\App` — three
namespaces outside `App\Http` for classes that are unambiguously HTTP
apps. Each one
already imported `App\Http\Config`, which is the tell: the protocol
module owns the
configuration, the controllers, the routing data and the providers, and
only the server
driving them differs.

**Why the class name and not a sub-namespace.** The starter app groups
by *protocol* —
`App\Http`, `App\Cli`, and (per `architecture/GRPC.md`) a coming
`App\Grpc` — while the
framework groups by *adapter*, because one adapter serves several
protocols:
`Entry\OpenSwoole\` will hold `OpenSwooleHttp`, `OpenSwooleGrpc`, and
`OpenSwoolePushWorkerQueue`. Different axes, but both put the runtime in
the *class
name*, and that is the invariant worth keeping in parity. Mapped through
the app's axis,
the framework's `FrankenPhpHttp` becomes `App\Http\FrankenPhpApp`.

Nesting instead — `App\Http\FrankenPhp\App` — would give four classes
named `App` inside
one protocol today and roughly a dozen once gRPC and Queue land, and it
would break down
outright for Queue: `architecture/QUEUE.md` ships `PullQueue` and
`PushQueue` as
non-adapter defaults, so the variant axis is not always an adapter and
cannot be a
namespace.

The Java starter app already settled this the same way: `app.http.App`
and
`app.http.CgiApp` are two HTTP entries flat in one package,
distinguished by class name.
Its sibling PR applies the identical shape to the Jetty/Netty/Tomcat
entries.

The class bodies are unchanged — a `diff` ignoring the `namespace` and
`final class`
lines is empty — so this is a pure move.
... (continued)

420 of 420 relevant lines covered (100.0%)

1.78 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30376619544.1 28 Jul 2026 04:06PM UTC 32
100.0
GitHub Action Run
Source Files on build 30376619544
  • Tree
  • List 32
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30376619544
  • ba0f48cb on github
  • Prev Build on 26.x (#30375436856)
  • Next Build on 26.x (#30417216198)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc