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

valkyrjaio / valkyrja-php / 30723771849
100%

Build:
DEFAULT BRANCH: 26.x
Ran 01 Aug 2026 11:42PM UTC
Jobs 1
Files 1213
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 11:40PM UTC coverage: 100.0%. Remained the same
30723771849

push

github

web-flow
[Session] feat!: Configure the session component with typed config contracts (#1085)

# 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 Session component its own typed config contracts. It
also
converts `SessionServiceProvider` to read those contracts.

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

The component config holds the settings that every session manager
reads, and
each adapter gets its own contract, its own default class, and its own
container
binding:

- `SessionConfigContract` holds `defaultSession`, `sessionId`, and
  `sessionName`.
- `SessionCookieConfigContract` holds the six `cookie*` settings.
- `SessionJwtConfigContract` holds `jwtOptionName` and `jwtHeaderName`.
- `SessionTokenConfigContract` holds `tokenOptionName` and
`tokenHeaderName`.

`sessionId` and `sessionName` sit on the component config even though
`Env`
spelled them `SESSION_PHP_ID` and `SESSION_PHP_NAME`. The `PHP` in those
names is
misleading: every session manager reads both values, not only
`PhpSession`, so
they are component-wide settings.

An application that stores its session in a cookie never constructs the
JWT or
the token settings. The container resolves an adapter config only when
something
asks for that adapter.

Each property carries the adapter name as a prefix, so one application
config
class can implement several of these contracts at once.
`tests/T... (continued)

103 of 103 new or added lines in 6 files covered. (100.0%)

12862 of 12862 relevant lines covered (100.0%)

24.4 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30723771849.1 01 Aug 2026 11:42PM UTC 1213
100.0
GitHub Action Run
Source Files on build 30723771849
  • Tree
  • List 1213
  • Changed 2
  • Source Changed 2
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30723771849
  • 9cbff574 on github
  • Prev Build on 26.x (#30723578300)
  • Next Build on 26.x (#30724957233)
  • 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