fyre / framework
FyrePHP framework for MVC web apps with PSR-compliant HTTP, routing, ORM, cache, queue, and CLI tooling.
Requires
- php: >=8.5
- ext-intl: *
- ext-mbstring: *
- ext-sodium: *
- psr/container: ^2.0
- psr/event-dispatcher: ^1.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.1
- psr/http-message: ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- psr/log: ^3.0
- psr/simple-cache: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.91
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^13
Suggests
- ext-curl: Required to use client requests.
- ext-exif: Required to detect EXIF orientation for image manipulation.
- ext-gd: Required to use image manipulation.
- ext-memcached: Required to use Memcached cache handler.
- ext-openssl: Required to use OpenSSL encryption handler.
- ext-pcntl: Required to use queue workers and async promises.
- ext-pdo: Required to use database connections.
- ext-posix: Required to use async promises.
- ext-redis: Required to use Redis cache and queue handlers.
- ext-sockets: Required to use async promises.
- friendsofphp/php-cs-fixer: Required to use Fyre\TestSuite\PhpCsFixer\Config.
- phpstan/phpstan: Required to use Fyre\TestSuite\PhpStan extensions.
- phpunit/phpunit: Required to use Fyre\TestSuite\TestCase, traits, and constraints.
Provides
- psr/container-implementation: ^2.0
- psr/event-dispatcher-implementation: ^1.0
- psr/http-client-implementation: ^1.0
- psr/http-factory-implementation: ^1.0
- psr/http-message-implementation: ^2.0
- psr/http-server-handler-implementation: ^1.0
- psr/http-server-middleware-implementation: ^1.0
- psr/log-implementation: ^3.0
- psr/simple-cache-implementation: ^3.0
This package is auto-updated.
Last update: 2026-09-02 14:13:54 UTC
README
Use FyreFramework to build HTTP applications and CLI tools with routing, ORM, views, caching, queues, and other focused components.
Install the fyre/framework package and use individual subsystems as needed, or extend Engine when you want the framework's common application services available by default.
Table of Contents
- Start here
- Requirements
- Installation
- Application bootstrap
- Hello world
- Documentation
- Release and support
- Repository development
- License
Start here
- Install the framework package: follow Installation.
- Run a complete application: follow the Hello world guide.
- Build around the default application services: see Application bootstrap.
- Use a specific subsystem: browse the documentation.
Requirements
- PHP >= 8.5
- Required PHP extensions:
ext-intl,ext-mbstring,ext-sodium - For database connections:
ext-pdoplus the matching PDO driver such asext-pdo_mysql,ext-pdo_pgsql, orext-pdo_sqlite
Optional (depending on the parts you use):
ext-curl(HTTP client requests)ext-exif(EXIF orientation detection for image manipulation)ext-gd(image manipulation)ext-memcached(Memcached cache)ext-openssl(OpenSSL encryption handler)ext-pcntl(queue workers and async promises)ext-posix(async promises)ext-redis(Redis cache and queue handlers)ext-sockets(async promises)
Fyre has no third-party runtime dependencies beyond PSR interfaces (psr/*).
Installation
Install the package with Composer:
composer require fyre/framework
Application bootstrap
A common bootstrap extends Fyre\Core\Engine, customizes the middleware queue, and shares the application instance with the framework helpers.
<?php declare(strict_types=1); use Fyre\Core\Engine; use Fyre\Core\Loader; use Fyre\Http\MiddlewareQueue; use Override; $composer = require __DIR__.'/vendor/autoload.php'; final class Application extends Engine { #[Override] public function middleware(MiddlewareQueue $queue): MiddlewareQueue { return $queue ->add('error') ->add('router') ->add('bindings'); } } $loader = new Loader() ->addClassMap($composer->getClassMap()) ->addNamespaces($composer->getPrefixesPsr4()) ->register(); $app = new Application($loader); Application::setInstance($app); return $app;
Your application repository defines its entry points, routes, configuration paths, and project layout around this package.
Continue with Engine, HTTP Middleware, and Routing.
Hello world
The Hello world application combines the bootstrap, route, HTTP request pipeline, response emitter, CLI entry point, and web-server rewrites into one copy-paste example.
Documentation
Start with Getting Started or browse the documentation index. You can also jump directly to the area you need:
- Core services: Core → Engine → Container
- HTTP applications: HTTP → Routing
- Data and persistence: Database → ORM
- Auth and security: Auth, Security
- Shared services: Events, Logging, Mail, Cache, Queue
- Rendering and forms: View, Form
- Tooling and tests: Console, Testing, Utilities
Release and support
- Changelog - user-visible changes, deprecations, and breaking changes
- Security Policy - supported releases and private vulnerability reporting
- API Stability - public API, internal symbols, and compatibility guarantees
Repository development
Install the repository's dev dependencies and run the baseline checks:
composer validate --strict composer install composer audit --no-interaction composer cs composer stan composer stan:tests composer test:core
Additional local suites cover SQLite and external runtime integrations:
composer test:sqlite composer test:external
The SQLite suite requires ext-pdo and ext-pdo_sqlite. The external suite requires ext-curl and a google-chrome executable for PDF rendering.
Service-backed suites are available for dependencies defined in docker-compose.yml:
docker compose up -d mysql composer test:mysql
Available service-backed suites include mariadb, mysql, postgres, redis, memcached, and smtp.
License
FyreFramework is released under the MIT License.