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

valkyrjaio / valkyrja / 24374846282
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: 26.x
DEFAULT BRANCH: master
Ran 14 Apr 2026 12:52AM UTC
Jobs 1
Files 1157
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

14 Apr 2026 12:51AM UTC coverage: 100.0%. Remained the same
24374846282

push

github

web-flow
[Application] Add component provider dependencies capability (#727)

# Description

Add component provider dependencies capability.

## New `ComponentProviderContract` Dependency Pattern

The `ComponentProviderContract` interface gains a
`getComponentProviders()` method, allowing a component provider to
declare other component providers it depends on. `Kernel\Valkyrja`
expands these declarations into a flat provider list at boot time: the
declaring component is positioned first, followed by its declared
sub-components in order. This means the declaring component's own
service, route, and event provider registrations take effect before its
dependencies' registrations — enabling explicit overrides.

---

## Four Built-in Application Component Providers

Four aggregator providers are added to `Valkyrja\Application\Provider`,
each implementing `ComponentProviderContract` and declaring a curated
set of framework sub-components via `getComponentProviders()` while
returning `[]` from all other methods:

| Class | Components Included | Default For |
|---|---|---|
| `ApplicationComponentProvider` | Container, Dispatch, all CLI, Event,
all HTTP, Log, View | `Config` |
| `CliApplicationComponentProvider` | Container, Dispatch, all CLI,
Event, Log | — |
| `CliWithHttpApplicationComponentProvider` | Container, Dispatch, all
CLI, Event, all HTTP, Log | `CliConfig` |
| `HttpApplicationComponentProvider` | Container, Dispatch, Event, all
HTTP, Log, View | `HttpConfig` |

`HttpConfig` now defaults providers to
`[HttpApplicationComponentProvider]` and `CliConfig` defaults to
`[CliWithHttpApplicationComponentProvider]`, replacing the previous flat
lists of individual framework component providers.

---

## Tests

Unit tests are added to `Tests\Unit\Application\Kernel\ApplicationTest`
covering:

- `getProviders()` sub-component expansion
- `getContainerProviders()`, `getEventProviders()`, `getCliProviders()`,
and `getHttpProviders()` result collection
- Cache population ... (continued)

171 of 171 new or added lines in 34 files covered. (100.0%)

13153 of 13153 relevant lines covered (100.0%)

16.46 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24374846282.1 14 Apr 2026 12:52AM UTC 1157
100.0
GitHub Action Run
Source Files on build 24374846282
  • Tree
  • List 1157
  • Changed 34
  • Source Changed 34
  • Coverage Changed 33
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24374846282
  • 7b896cfa on github
  • Prev Build on 26.x (#24368927388)
  • Next Build on 26.x (#24375165457)
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