🥐 Micro-framework PHP

Le code legacy,
c'est terminé.

Brioche enrobe votre code spaghetti dans une couche dorée et moelleuse, sans refactoring brutal. Ajoutez de la structure, pas de la souffrance.

Commencer maintenant → Voir un exemple
~4kb
Taille du core
0
Dépendances
PHP 7.4+
Compatibilité
MIT
Licence

Moelleux à l'intérieur,
solide à l'extérieur

Brioche ne remplace pas votre code. Il l'entoure, le protège et le rend progressivement plus savoureux, fichier par fichier.

🧩

Routage progressif

Ajoutez un routeur propre sur vos URLs existantes. Pas besoin de tout réécrire, Brioche cohabite avec votre code actuel.

🛡️

Middleware en couches

Enveloppez vos fichiers legacy dans des middlewares : auth, logging, rate-limiting, sans toucher à l'existant.

💉

Container DI léger

Un conteneur d'injection de dépendances minimaliste pour progressivement sortir les services de vos global $db.

📦

Modules opt-in

Activez uniquement ce dont vous avez besoin : sessions, ORM léger, templating. Rien de superflu dans le bundle de base.

🔍

Debugging doux

Un debugger qui comprend le code legacy : trace les appels imbriqués, détecte les globals dangereux, suggère des refactorings.

Zéro configuration

Un seul fichier à inclure. Brioche s'auto-configure à partir de votre structure existante. Fariné et prêt à cuire.

Du code à l'état brut
à la mie parfaite

Voici comment Brioche transforme un fichier PHP typique en quelque chose de propre, sans tout réécrire d'un coup.

user_profile.php Avant
// Connexion MySQL old-school
global $conn;
$id = $_GET['id'];

$result = mysql_query(
  "SELECT * FROM users WHERE id="
  . $id  // 💀 SQL injection
);
$user = mysql_fetch_array($result);

if($_SESSION['role'] == 'admin') {
  // 200 lignes de spaghetti ici…
  include('admin_stuff.php');
}

echo "<h1>".$user['name']."</h1>";
user_profile.php Avec Brioche
require 'brioche.php';

Brioche::wrap(function($b) {

  // Auth middleware injecté
  $b->guard('admin');

  // Repository sûr, requête préparée
  $user = $b->db()->find(
    'users', $b->param('id')
  );

  // Legacy inclus proprement
  $b->legacy('admin_stuff.php', [
    'user' => $user
  ]);

  $b->render('profile', compact('user'));
});
🔒

Sécurité automatique

Requêtes préparées, sanitization des inputs, CSRF intégré — sans changer votre logique métier.

♻️

Migration progressive

$b->legacy() isole les fichiers legacy dans un scope contrôlé, sans les supprimer.

🎯

Lisibilité immédiate

Vos collègues comprennent ce que fait le code au premier coup d'œil. Fini le spaghetti invisible.

Trois étapes pour une
mie parfaitement alvéolée

1

Installez Brioche

Un composer require brioche/brioche ou un simple copier-coller d'un fichier unique. Aucune dépendance externe requise.

2

Enveloppez votre code

Ajoutez Brioche::wrap() autour de vos fichiers PHP existants. Votre code continue de fonctionner exactement comme avant.

3

Améliorez à votre rythme

Activez les modules un à un : routeur, DI, ORM léger, logger. Chaque sprint vous rapproche d'un code propre et savoureux.

4

Déploiement sans friction

Brioche est compatible avec tout hébergement PHP mutualisé ou cloud. Pas besoin de reconfigurer votre serveur.

Chaque couche Brioche ajoute de la structure
sans alourdir votre code existant.

Des équipes qui ont
survécu au legacy

On avait 80 000 lignes de PHP4 à maintenir. En trois sprints avec Brioche, on a réussi à isoler les modules critiques sans régression. Un miracle de douceur.

ML
Marc Lecomte
CTO · Groupe Retail Lyon

La méthode legacy() m'a sauvé la mise. J'ai pu encapsuler des includes douteux sans tout réécrire avant le lancement client. Chapeau.

SA
Sofia Azoulay
Lead Dev · Agence Pixel Nantes

Aucune conférence technique ne m'avait convaincu qu'on pouvait migrer proprement un monolithe PHP sans downtime. Brioche l'a fait, en production, un vendredi soir.

JR
Jules Renard
Backend Engineer · FinTech Paris

Prêt à enfourner ?

Un seul composer, un seul fichier, zéro configuration. Votre code legacy sera entre de bonnes mains en moins de 5 minutes.

$ composer require brioche/brioche

PHP 7.4+ requis · Composer 2.x · Compatible Apache & Nginx