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

valkyrjaio / valkyrja-php / 30719398554
100%

Build:
DEFAULT BRANCH: 26.x
Ran 01 Aug 2026 09:36PM UTC
Jobs 1
Files 1149
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

01 Aug 2026 09:33PM UTC coverage: 100.0%. Remained the same
30719398554

push

github

web-flow
[HttpServer] feat!: Configure the http server component with a typed config contract (#1008)

# Description

`Valkyrja\Application\Env\Env` is deprecated. It is one non-final class
that holds
about 120 `public const` env variables for every component at once. This
pull
request gives the Http Server component its own typed config contract
and its own
config class. It also converts `HttpServerServiceProvider` to read that
contract.

`HttpServerServiceProvider` no longer reads `Env`. An application that
sets
`Env::HTTP_SERVER_RESPONSE_CACHE_FILE_PATH` loses that setting, so this
change
breaks a public contract.

This pull request does not change `Env.php`. Each component gets its own
pull
request, and all of those pull requests are independent. A pull request
that
deleted its own constants would conflict with every sibling pull request
on that
one file. `Env` therefore stays in place and goes unread. A later pull
request
removes the whole class.

The shape follows `Cli\Interaction`:

- `HttpServerConfigContract` is the container binding key. The
application can
implement the contract on its own `Config` class. `publishConfig` then
binds
  that object.
- `HttpServerConfig` is the default. `publishConfig` binds a new
instance when
  the application config does not implement the contract.

## Why the response cache path stays nullable

The other components in this series hold a real default in the config
class. This
component cannot. Its default path is
`Directory::frameworkStorageCachePath('response/')`, and that call has
two
properties that block a property initializer:

1. PHP does not accept a static method call as a property default.
2. `Directory` resolves the path from `Directory::$basePath`, which the
application sets during boot. A config object that a developer
constructs
   before boot would capture the wrong path.

`HttpServerConfig::$responseCacheFilePath` is therefore
`non-empty-string|null`,
and it defaults to `null`. `publishCacheResponseMid... (continued)

15 of 15 new or added lines in 2 files covered. (100.0%)

12640 of 12640 relevant lines covered (100.0%)

23.77 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30719398554.1 01 Aug 2026 09:36PM UTC 1149
100.0
GitHub Action Run
Source Files on build 30719398554
  • Tree
  • List 1149
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30719398554
  • 0d1abfcf on github
  • Prev Build on 26.x (#30719374654)
  • Next Build on 26.x (#30719845989)
  • 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