Ir al contenido
Nibiru docsv0.9.2

Módulos y Controladores de Esqueleto

Genera controladores, módulos y complementos con la CLI.

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

Crea dos archivos:

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

El esqueleto del controlador:

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

El plantilla stub:

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

Los controladores son archivos PHP únicamente — no hay estructura de JS o CSS, por lo que usted mantiene el control del enlace de activos.

Ventana de terminal
./nibiru -m billing

Crea:

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

La clase principal implementa IModule y expone un constructor que carga la configuración del registro del módulo. Agrega la bandera -g para incluir el enrutamiento del observador de Graylog por defecto:

Ventana de terminal
./nibiru -m billing -g

Cuando se establece -g, el esqueleto importa un observador Graylog, lo adjunta en el constructor y emite notify() en los cambios de estado clave — por lo que cualquier servidor de Graylog capaz de GELF recoge eventos del módulo sin necesidad de conexiones adicionales.

Un complemento vive dentro de un módulo:

Ventana de terminal
./nibiru -p invoices -m billing

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

Los plugins heredan del módulo, por lo que comparten su registro, configuración y mecanismo de observadores.

./nibiru -s se ejecuta después de la instalación (o después de hacer un nuevo checkout fresco) para:

  • Crea application/view/templates_c/ y application/view/cache/ si faltan.
  • Verifica los permisos (escribibles por el usuario del servidor web) en esas carpetas.
  • Verifica que las extensiones de PHP requeridas estén cargadas.
  • Verifica que el controlador de base de datos en tu INI sea compatible con esta versión binaria.

Es seguro ejecutarlo repetidamente.

Borra tanto la caché de compilación de Smarty como la caché de HTML renderizada:

Ventana de terminal
./nibiru -cache-clear

Ejecuta después de una implementación cuando:

  • Cambiaste archivos .tpl,
  • Cambiaste la configuración de caché de [ENGIN],
  • Modificaste los complementos de Smarty.

La caché se regenera en la siguiente solicitud.