<?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]);
}
}
<?php
use stdClass;
use Zephyrus\Data\Broker;
final class ProductBroker extends Broker
{
public function find(int $id): ?stdClass
{
return $this->selectOne(
'SELECT id, name FROM product WHERE id = ?',
[$id]
);
}
}
UNE SURFACE CLAIRE. UNE INTENTION PRÉCISE.ZEPHYRUS / CORE
EXEMPLES ILLUSTRATIFS / LA DOCUMENTATION DE L’API EST EN PRÉPARATION
03 / UNE FONDATION COHÉRENTESUIVRE LA REQUÊTE.
Chaque composant. À sa place.
Un parcours clair dans votre application. Explorez les composants qui lui donnent vie.
REQUÊTERÉPONSECONÇUS POUR FONCTIONNER ENSEMBLE.
01Routage et contrôleurs
Les attributs PHP relient une URL à une méthode de contrôleur. Les paramètres typés définissent un contrat clair pour les données reçues.
Répartissez les traductions dans des fichiers JSON. Clés imbriquées, paramètres et filtres de formatage gardent les messages lisibles. Une variante régionale se replie sur sa langue, puis sur la langue par défaut.
Les Brokers regroupent le SQL explicite et les paramètres liés par domaine. Requêtes typées, transactions composables et hydratation des Entity gardent le parcours des données visible.
Des choix assumés dans le core. Utiles lorsqu’une application grandit, change de rôle ou commence à communiquer en temps réel.
01 / RÔLES D’EXÉCUTION
Un code commun. Plusieurs points d’entrée.
Placez RequiresEnv sur un contrôleur ou une méthode pour enregistrer ses routes lorsque l’environnement correspond. Les rôles web et API partagent le code applicatif tout en exposant leurs propres routes.
#[RequiresEnv('MODE', 'API')]
02 / INJECTION DE DÉPENDANCES
Un conteneur léger. Un câblage explicite.
Résolvez les dépendances des constructeurs, liez les interfaces et choisissez les services partagés. Les dépendances circulaires sont détectées pendant la résolution.
bind() / singleton() / make()
03 / ACCÈS COMPOSABLES
Des règles d’accès à combiner.
Composez des gardes avec les logiques tous, au moins un et non, puis appliquez-les par middleware. Le core fournit aussi des middlewares CSRF, CSP et d’en-têtes de sécurité.
AllAuthGuard / AnyAuthGuard / NotAuthGuard
04 / FLUX D’ÉVÉNEMENTS
Un générateur. Un flux en direct.
Diffusez des Server-Sent Events depuis un générateur PHP. Les messages SseEvent transportent données, noms d’événement, identifiants et délais de reconnexion, avec prise en charge des données multilignes.
06 / POUR LE DÉVELOPPEMENT AGENTIQUESKILL.md / FORMAT OUVERT
[ Z ]
Votre agent. Bien accompagné.
Donnez à votre agent les conventions derrière le code. Le skill Zephyrus ajoute les modèles de routage, la structure applicative et les notes d’intégration à son contexte de travail.
Routes par attributs. Enregistrement des middlewares. Modèles Broker, Service et Entity. Localisation JSON. Templates Latte. Conventions de configuration et de tests.