THE PHP FRAMEWORK, RECONSIDEREDOPEN SOURCE / INDEPENDENT BY DESIGN

Clear by design.
Powerful
by nature.

A cohesive PHP framework for people
who care how their software is built.

FIG. 01 / THE WEST WIND ++
A STUDY IN FLOW
SCROLL TO DISCOVER

Less friction. More intention.

001 / ZEPHYRUS
01 PHP 8.4+02 ATTRIBUTE ROUTING03 IMMUTABLE HTTP04 MIT LICENSED
YOUR FIRST COMMIT STARTS HERE.

Install Zephyrus.
Make it yours.

Add the core with Composer. Routing, HTTP, JSON localization and explicit SQL become the foundation for your application.

PHP 8.4+ Composer
TERMINAL / QUICK START
composer require zephyrus-framework/core

Keep your code
within reach.

Good tools make space for good thinking. Zephyrus brings routing, HTTP, configuration and security into one coherent foundation.

Explicit code. Familiar PHP. An architecture you can follow from the first request to the last response.

Meet the source
01 / LEGIBLE

Code you can reason about.

02 / COHESIVE

Parts that belong together.

03 / YOURS

Built to be understood.

It reads like
you wrote it.

Routes live beside the code they run.
Inputs have types. Responses have purpose.
The details stay in plain sight.

Inside the documentation ↗
ProductController.phpPHP
<?php

namespace App\Controllers;

use Zephyrus\Controller\Controller;
use Zephyrus\Http\Response;
use Zephyrus\Routing\Attribute\Get;

final class ProductController extends Controller
{
    #[Get('/products/{id}')]
    public function show(int $id): Response
    {
        return Response::json(['id' => $id]);
    }
}
SMALL SURFACE. CLEAR INTENT.ZEPHYRUS / CORE

ILLUSTRATIVE EXAMPLES / API DOCUMENTATION IS BEING UPDATED

Every part.
In its place.

One considered path through your application.
Explore the pieces that make it work.

01Routing & controllers

PHP attributes connect a URL to a controller method. Typed parameters bring the request into your code with a clear contract.

Explore routing ↗
02Immutable HTTP

Request and response objects keep their state. Changes return a new object, making each step easier to follow.

Explore HTTP ↗
03Security & validation

Security middleware and validation rules give your application a shared place to handle boundaries and incoming data.

Explore security ↗
04Typed configuration

YAML configuration, environment values and typed sections keep application settings visible and organized.

Explore configuration ↗
05JSON localization

Split translations across JSON files. Nested keys, parameters and formatting pipes keep messages readable. Regional locales fall back to their language, then the configured default.

Explore localization ↗
06SQL, in plain sight

Brokers group explicit SQL and bound parameters by domain. Typed query helpers, composable transactions and Entity hydration keep the data path visible.

Explore data access ↗

Control where
it counts.

A few deliberate choices inside the core. Useful when an application grows, changes roles or starts talking in real time.

01 / RUNTIME ROLES

One codebase. Several entry points.

Use RequiresEnv on a controller or method to register its routes only when an environment value matches. Web and API roles can share application code while exposing their own routes.

#[RequiresEnv('MODE', 'API')]
02 / DEPENDENCY INJECTION

A small container. Explicit wiring.

Autowire constructor dependencies, bind interfaces and choose which services are shared. Circular dependencies are detected during resolution.

bind() / singleton() / make()
03 / COMPOSABLE ACCESS

Access rules you can combine.

Compose guards with all, any and not logic, then apply them through middleware. The same core also supplies CSRF, CSP and secure-header middleware.

AllAuthGuard / AnyAuthGuard / NotAuthGuard
04 / EVENT STREAMING

A generator. A live conversation.

Stream Server-Sent Events from a PHP generator. Typed SseEvent messages carry data, event names, IDs and retry values, with multiline data handled for you.

Generator → SseEvent → SseEmitter
Follow these choices in the core

Your agent.
In the know.

Give your coding agent the conventions behind the code. The Zephyrus skill brings routing patterns, application structure and practical integration notes into its working context.

Read the Zephyrus skill
ZEPHYRUS / AGENT SKILLAGENT READY
THE CONTEXT IT BRINGS

Attribute routes. Middleware registration. Broker, Service and Entity patterns. JSON localization. Latte templates. Configuration and testing conventions.

ADD TO YOUR CODING TOOLS
npx skills add ophelios-studio/skills --skill zephyrus

Run in your project, then choose your coding agents. The installer supports tools that implement the Agent Skills format.

Claude CodeCodexCursorGemini CLI
Built on the open Agent Skills format
ON THE ROADMAP

Web3,
in PHP.

Native blockchain tools are coming to Zephyrus. Starting with smart contracts, then looking at the whole path from a chain to your application.

FIG. 02 / FROM CHAIN TO APPLICATIONPHP / EVM

DIRECTIONS WORTH EXPLORING

A WORKING SKETCH, OPEN FOR DISCUSSION.
01 / PLANNED

Contracts, without the plumbing.

Read contract state, encode calls and decode ABI events through a PHP interface.

02 / TO EXPLORE

Your provider. Your choice.

Connect Alchemy, Infura or your own RPC node. Explore consistent adapters, retries and endpoint fallback.

03 / TO EXPLORE

Chain history, in your database.

Index contract events into SQL. Resume from checkpoints, backfill history and account for chain reorganizations.

04 / TO EXPLORE

Events that reach your app.

Receive signed provider webhooks, deduplicate deliveries and route events to application handlers.

05 / TO EXPLORE

From transaction to confirmation.

Follow receipts and confirmation depth, then stream status changes to the browser with Server-Sent Events.

06 / TO EXPLORE

A wallet becomes a session.

Explore Sign-In with Ethereum, nonce validation and expiring sessions through Zephyrus guards.

EXPLORATION

Smart contract access is on the roadmap. The directions below are ideas under consideration, not released features or a fixed delivery plan.

YOUR NEXT IDEA STARTS HERE.

Make something
worth building.

FIG. 03 / ZEPHYRUSMOVE THROUGH THE MARKTOUCH THE MARK
OPEN SOURCE. YOURS TO EXPLORE.Start with the documentation ↗