Valkyrja is a PHP framework for web and console applications.
Valkyrja (pronounced "Valk-ear-ya") is the Old Norse spelling for Valkyrie, a mythical creature that would guide warriors to Valhalla (the afterlife and a better place) after death. In a similar sense, the Valkyrja framework guides your application to be in a better state. Fast, light, and robust, Valkyrja does the heavy lifting so you can focus on your application.
- HTTP and CLI kernels — unified application architecture serving both web requests and command-line invocations
- Dependency injection container — deferred bindings, contextual resolution, and compiled configuration for fast resolution at runtime
- Routing — expressive route definitions with middleware, constraints, and reverse resolution
- Event dispatcher — decoupled event handling with typed listeners
- ORM and data layer — database access with repository patterns and migrations
- Persistent worker support — first-class integration with OpenSwoole, FrankenPHP, and RoadRunner for production-grade performance
The fastest way to start a new Valkyrja application is with the starter template or the Sindri build tool:
- Use the
valkyrja-starter-app-phpGitHub template ("Use this template" button on the repository page) - Or run
composer create-project valkyrja/application your-project - Or use Sindri:
composer create-project valkyrja/sindri your-project
To require the framework as a dependency:
composer require valkyrja/valkyrja
Full documentation is baked into the repository so you can browse it offline. Major areas include:
- HTTP — routing, controllers, middleware, requests, responses
- CLI — commands, input, output, and dispatch
- Container — dependency injection bindings and resolution
- Events — event dispatch and listeners
- ORM — database access, repositories, and migrations
Valkyrja is the core framework. Surrounding it is an ecosystem of related projects in the Valkyrjaio organization:
- Sindri — build tool and application creator
- Starter (App) — starter template for new applications
- Worker runtimes — OpenSwoole, FrankenPHP, RoadRunner
- Docker — ready-made Docker configurations
See the Valkyrjaio organization page for the complete listing.
Valkyrja follows semantic versioning with a major release every year, and support for each major version for 2 years from the date of release.
For more information see our Versioning and Release Process documentation.
Bug fixes are provided until 3 months after the next major release. Security fixes are provided for 2 years after the initial release.
| Version | PHP | Release | Bug Fixes Until | Security Fixes Until |
|---|---|---|---|---|
| 25 (*) | 8.4 – 8.6 | December 11th, 2025 | March 31, 2026 | March 31, 2026 |
| 26 | 8.4 – 8.6 | March 31, 2026 | Q2 2027 | Q1 2028 |
| 27 | 8.5 – 8.6 | Q1 2027 | Q2 2028 | Q1 2029 |
| 28 | 8.6+ | Q1 2028 | Q2 2029 | Q1 2030 |
(*) Pre-release. Version 25 is not supported once version 26 is released.
Valkyrja is an open-source, community-driven project. Thank you for your interest in helping develop, maintain, and release it.
See CONTRIBUTING.md for the submission process and
VOCABULARY.md for the terminology used across Valkyrja.
If you discover a security vulnerability within Valkyrja, please follow our disclosure procedure.
Valkyrja is open-source software licensed under the
MIT license. See LICENSE.md.
