Qu'est-ce que Nibiru ?
Une visite de 90 secondes de Nibiru — ce que signifie MMVC, ce qu'il y a dans la boîte, et pour qui c'est fait.
Nibiru est un framework PHP MVC modulaire — MMVC — construit pour le prototypage rapide sans renoncer à la discipline d’un véritable framework. Assez petit pour tenir dans votre tête, et assez puissant pour soutenir des applications de production comme celles présentées sur la page Vitrine.
Le nom est un clin d’œil à l’astronomie babylonienne : Nibiru était le point de croisement céleste associé à Marduk, le dieu principal de Babylone. Le framework fonctionne sur la même idée — un point unique par lequel vos modules, contrôleurs, vues et données se croisent.
Ce qui est dans la boîte
Section intitulée « Ce qui est dans la boîte »| Routage & dispatch | Analyse de motif URL + URLs SEO, 404 doux, recherche automatique d’action. |
| MVC + un second M | Contrôleurs, Vues (Smarty), Modèles, plus des Modules de première classe avec traits, plugins, interfaces, paramètres et un pattern observer. |
| Multi-bases | MySQL natif, PDO, PostgreSQL via libpq (psql/postgresql) et ODBC, le tout derrière un adaptateur Db unifié. |
| Formulaires | Plus de 28 types de champs construits fluidement avec Form::addInputType…() et un assistant de layout pour les divs. |
| Pagination | Consciente de l’URL (/controller/action/page/N) avec des assistants de template. |
| Auth | Basée sur session avec identifiants déchiffrés en AES, formulaire de connexion pré-construit par le module Users. |
CLI (./nibiru) | Génère modules, contrôleurs, plugins ; exécute les migrations ; nettoie les caches ; gère les pages CMS. |
| Prêt pour Composer | Smarty 3, PHPMailer, Guzzle, Laminas Diactoros, client OpenAI, client Elasticsearch, codes QR, codes-barres, outils blockchain. |
Ce que MMVC veut vraiment dire
Section intitulée « Ce que MMVC veut vraiment dire »La plupart des frameworks PHP vous donnent Modèle–Vue–Contrôleur. Nibiru ajoute un second M : Module.
Un module est une unité auto-contenue qui peut contenir :
- une classe principale implémentant
IModule(et optionnellementSplSubjectpour le pattern observer), - des traits pour un comportement réutilisable,
- des plugins pour des services sans état injectés dans les contrôleurs,
- des interfaces pour les contrats,
- des paramètres sous forme de fichiers
.iniauto-découverts par le Registre.
Les modules favorisent le couplage faible et vous permettent de garder “users”, “billing”, “shop”, “tpms” etc. dans leurs propres dossiers sans polluer application/controller/.
application/module/users/ ├── users.php # classe principale (implémente IModule, SplSubject) ├── interfaces/ # contrats ├── plugins/ # services sans état (User, Acl…) ├── settings/ # config .ini auto-chargée par le Registre └── traits/ # méthodes réutilisablesLe cycle de vie d’une requête, en une respiration
Section intitulée « Le cycle de vie d’une requête, en une respiration »flowchart LR A[index.php] --> B[core/framework.php] B --> C[Dispatcher::run] C --> D[Router::route] D --> E[Auto::loader<br/>modèles + modules] E --> F[applicationController.php] F --> G[navigationAction] G --> H[customAction?] H --> I[pageAction] I --> J[Display::display<br/>rendu Smarty]Chaque requête exécute navigationAction(), puis (optionnellement) la _actionAction correspondante et enfin pageAction(). Si le fichier de contrôleur est introuvable, Nibiru rend le template d’erreur configuré — un 404 doux.
Pour qui est Nibiru
Section intitulée « Pour qui est Nibiru »- Hackers et prototypeurs qui veulent livrer une application web fonctionnelle ce week-end.
- Fondateurs solo et petites équipes maintenant de vraies applications de production sans porter le poids d’un méga-framework.
- Équipes curieuses de PHP qui veulent PostgreSQL, MySQL et une CLI dès le premier jour.
Prêt ? Installer Nibiru →