Aller au contenu
Nibiru docsv0.9.2

Modules et contrôleurs de conception

Générez des contrôleurs, des modules et des plug-ins avec la CLI.

Stable Reading time ~ 2 min Edit on GitHub
Fenêtre de terminal
./nibiru -c products

Crée deux fichiers :

application/controller/productsController.php
application/view/templates/products.tpl

Le squelette du contrôleur :

<?php
namespace Nibiru;
use Nibiru\Adapter\Controller;
class productsController extends Controller
{
public function pageAction() {
View::assign(['title' => 'Products']);
}
public function navigationAction() {
JsonNavigation::getInstance()->loadJsonNavigationArray();
}
}

Le modèle squelette :

{include 'shared/header.tpl'}
<body>
{include file="navigation.tpl"}
<main class="container">
<h1>{$title}</h1>
</main>
{include 'shared/footer.tpl'}
</body>

Les contrôleurs sont des fichiers PHP uniquement — pas de squelette JS ou CSS, donc vous restez en contrôle du cordonnage des actifs.

Fenêtre de terminal
./nibiru -m billing

Crée :

application/module/billing/
├── billing.php
├── interfaces/billing.php
├── plugins/
├── settings/billing.ini
└── traits/

La classe principale implémente IModule et expose un constructeur qui charge la configuration de registre du module. Ajoutez l’indicateur -g pour inclure le câblage observateur Graylog par défaut :

Fenêtre de terminal
./nibiru -m billing -g

Lorsque -g est défini, le squelette importe un observateur Graylog, l’attache dans le constructeur et émet notify() lors des changements d’état clés — de sorte que tout serveur Graylog capable de GELF capture les événements du module sans aucune configuration supplémentaire.

Un plugin vit à l’intérieur d’un module :

Fenêtre de terminal
./nibiru -p invoices -m billing

Créez application/module/billing/plugins/invoices.php :

<?php
namespace Nibiru\Module\Billing\Plugin;
use Nibiru\Module\Billing\Billing;
class Invoices extends Billing
{
public function listOpen(): array
{
return \Nibiru\Pdo::fetchAll(
'SELECT * FROM invoices WHERE status = :s ORDER BY due_date',
[':s' => 'open']
);
}
}

Les plugins héritent du module, donc ils partagent son registre, ses paramètres et sa machine d’observation.

./nibiru -s s’exécute après l’installation (ou après avoir effectué un nouveau checkout frais) pour :

  • Créez application/view/templates_c/ et application/view/cache/ s’ils sont manquants.
  • Vérifiez les autorisations (écrivables par l’utilisateur du serveur web) sur ces dossiers.
  • Vérifiez que les extensions PHP requises sont chargées.
  • Vérifiez que le pilote de base de données dans votre INI est pris en charge par cette version binaire.

Il est sûr de le lancer plusieurs fois.

Efface à la fois le cache de compilation de Smarty et le cache du HTML rendu :

Fenêtre de terminal
./nibiru -cache-clear

Exécutez après un déploiement lorsque :

  • Vous avez modifié des fichiers .tpl,
  • Vous avez changé les paramètres de mise en cache [ENGINE],
  • Vous avez modifié des plug-ins Smarty.

Le cache se régénère à la prochaine requête.