Zum Inhalt springen
Nibiru docsv0.9.2

Modul- und Controllergerüste

Generieren Sie Controller, Module und Plugins mit der Befehlszeilenschnittstelle (CLI).

Stable Reading time ~ 1 min Edit on GitHub
Terminal-Fenster
./nibiru -c products

Erstellt zwei Dateien:

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

Der Controller-Stub:

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

Die Vorlagestub:

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

Controller sind nur PHP-Dateien – keine JS- oder CSS-Skelettstruktur, sodass Sie die Verwaltung der Assets selbstständig steuern können.

Terminal-Fenster
./nibiru -m billing

Erstellt:

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

Die Hauptklasse implementiert IModule und macht einen Konstruktor verfügbar, der die Registrierungskonfiguration des Moduls lädt. Fügen Sie den Flag -g hinzu, um die Graylog-Observer-Wiring standardmäßig einzubinden:

Terminal-Fenster
./nibiru -m billing -g

Wenn -g gesetzt ist, importiert das Scafolding einen Graylog-Observer, fügt ihn im Konstruktor hinzu und gibt bei wichtigen Zustandsänderungen notify() aus – sodass jeder GELF-fähige Graylog-Server die Modulereignisse ohne zusätzliche Anpassungen aufnimmt.

Ein Plugin lebt innerhalb eines Moduls:

Terminal-Fenster
./nibiru -p invoices -m billing

Erstellt 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']
);
}
}

Plugins erben vom Modul und teilen daher dessen Registry, Einstellungen und Observer-Maschinerie.

./nibiru -s wird nach der Installation (oder nach dem Abrufen eines frischen Checkout) ausgeführt, um:

  • Erstellen Sie application/view/templates_c/ und application/view/cache/, falls diese fehlen.
  • Überprüfen und korrigieren Sie die Berechtigungen (schreibbar für den Webserver-Benutzer) dieser Ordner.
  • Stellen Sie sicher, dass die erforderlichen PHP-Erweiterungen geladen sind.
  • Überprüfen Sie, ob der Datenbanktreiber in Ihrer INI-Datei von diesem Binärbuild unterstützt wird.

Es ist sicher, mehrmals zu führen.

Löscht sowohl den Smarty-Kompilierungs-Cache als auch den gerenderten HTML-Cache:

Terminal-Fenster
./nibiru -cache-clear

Führen Sie nach einer Bereitstellung aus, wenn:

  • Sie .tpl-Dateien geändert haben,
  • Sie die [ENGINE]-Caching-Einstellungen geändert haben,
  • Sie Smarty-Plugins modifiziert haben.

Der Cache wird beim nächsten Anfrage erneut generiert.