Aller au contenu
Nibiru docsv0.9.2

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.

Stable Reading time ~ 2 min Edit on GitHub

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.

Routage & dispatchAnalyse de motif URL + URLs SEO, 404 doux, recherche automatique d’action.
MVC + un second MContrôleurs, Vues (Smarty), Modèles, plus des Modules de première classe avec traits, plugins, interfaces, paramètres et un pattern observer.
Multi-basesMySQL natif, PDO, PostgreSQL via libpq (psql/postgresql) et ODBC, le tout derrière un adaptateur Db unifié.
FormulairesPlus de 28 types de champs construits fluidement avec Form::addInputType…() et un assistant de layout pour les divs.
PaginationConsciente de l’URL (/controller/action/page/N) avec des assistants de template.
AuthBasé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 ComposerSmarty 3, PHPMailer, Guzzle, Laminas Diactoros, client OpenAI, client Elasticsearch, codes QR, codes-barres, outils blockchain.

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 optionnellement SplSubject pour 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 .ini auto-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éutilisables

Le 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.

  • 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 →