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

valkyrjaio / valkyrja-php / 30720596830
100%

Build:
DEFAULT BRANCH: 26.x
Ran 01 Aug 2026 10:09PM UTC
Jobs 1
Files 1164
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 10:07PM UTC coverage: 100.0%. Remained the same
30720596830

push

github

web-flow
[Broadcast] feat!: Configure the broadcast component with a typed config contract (#1013)

# 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 Broadcast component its own typed config contract and
its own
config classes. It also converts `BroadcastServiceProvider` to read that
contract.

`BroadcastServiceProvider` no longer reads `Env`. An application that
sets an
`Env::BROADCAST_*` constant 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`:

- `BroadcastConfigContract` is the container binding key. The
application can
implement the contract on its own `Config` class. `publishConfig` then
binds
  that object.
- `BroadcastConfig` is the default. `publishConfig` binds a new instance
when the
  application config does not implement the contract.
- `BroadcastPusherConfig` and `BroadcastLogConfig` are plain data
classes without
a contract. They are values that the parent config holds, not services
that the
  container resolves. This matches `Session\Data\CookieParams`.

The Broadcast component reads 7 env constants across 2 adapters. The
nested shape
keeps one container binding for the component and keeps each class
short.

This is one of 14 pull requests that give each component its own config
contract.
See #1002 for the first one, which describes the pattern in full.

## Types of changes

- [ ] Improvement _(non-breaking change which improves code)_
- [ ] Bug fix _(non-breaking change which fixes an issue)_
- [x] New feature _(non-br... (continued)

52 of 0 new or added lines in 0 files covered. (NaN%)

12713 of 12713 relevant lines covered (100.0%)

24.3 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30720596830.1 01 Aug 2026 10:09PM UTC 1164
100.0
GitHub Action Run
Source Files on build 30720596830
  • Tree
  • List 1164
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30720596830
  • 26211dcb on github
  • Prev Build on 26.x (#30720582621)
  • Next Build on 26.x (#30721199531)
  • 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