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

valkyrjaio / valkyrja-php / 25938570583
100%

Build:
DEFAULT BRANCH: 26.x
Ran 15 May 2026 08:01PM UTC
Jobs 1
Files 1140
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

15 May 2026 07:59PM UTC coverage: 99.952% (-0.03%) from 99.984%
25938570583

push

github

web-flow
[Application] Convert providers to instance-based contracts (#806)

# Description

Converts all `ComponentProviderContract` and `ServiceProviderContract`
methods across every module from static to instance, enabling providers
to hold state and be passed as objects. Replaces the single-level
provider expansion in `Valkyrja::getProviders()` with depth-first
recursive expansion via `collectProviders()`, so sub-providers are
always registered before the provider that depends on them. Renames
`ContainerData`'s `deferredCallback` parameter to `callbacks`. Removes
the now-redundant `PublishableComponentProviderContract`. Updates
`WhoopsThrowableHandler::enable()` to an instance method and adds
`ThrowableFactory`. Adds `@psalm-suppress
MoreSpecificImplementedParamType` to `NativeChildContainer::has()` to
match the existing suppress on the parent `Container`.

---

## Types of Changes

- [ ] Improvement _(non-breaking change which improves code)_
- [ ] Bug fix _(non-breaking change which fixes an issue)_
- [ ] New feature _(non-breaking change which adds functionality)_
- [ ] Deprecation _(breaking change which removes functionality)_
- [x] Breaking change _(fix or feature that would cause existing
functionality to change)_
- [ ] Documentation improvement

---

## Changes

- **`ComponentProviderContract`** — all methods
(`getComponentProviders`, `getContainerProviders`, `getEventProviders`,
`getCliProviders`, `getHttpProviders`) changed from static to instance
- **`ServiceProviderContract`** / **`ListenerProviderContract`** /
**`CliRouteProviderContract`** / **`HttpRouteProviderContract`** —
`publishers()` / `getRoutes()` / `getControllerClasses()` changed from
static to instance
- **`PublishableComponentProviderContract`** — deleted; functionality
consolidated into `ComponentProviderContract`
- **`Valkyrja::getProviders()`** — replaced single-level expansion with
recursive `collectProviders()` helper for depth-first post-order
traversal; no deduplication
- **... (continued)

512 of 516 new or added lines in 74 files covered. (99.22%)

12490 of 12496 relevant lines covered (99.95%)

15.51 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
93.85
-6.15% src/Valkyrja/Application/Kernel/Valkyrja.php
Jobs
ID Job ID Ran Files Coverage
1 25938570583.1 15 May 2026 08:01PM UTC 1140
99.95
GitHub Action Run
Source Files on build 25938570583
  • Tree
  • List 1140
  • Changed 87
  • Source Changed 87
  • Coverage Changed 40
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25938570583
  • 12a9dcf2 on github
  • Prev Build on 26.x (#25938131878)
  • Next Build on 26.x (#25939817991)
  • Delete
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