El archivo Init.php en FacturaScripts

El archivo Init.php es fundamental para el funcionamiento avanzado de los plugins en FacturaScripts. Este archivo permite definir procesos y acciones que se ejecutan automáticamente en distintos momentos del ciclo de vida del plugin, como la carga de la aplicación, activación, actualización o desactivación.

📂 Ubicación del archivo

Debes colocar el archivo Init.php en la raíz del directorio de tu plugin.

🧩 Estructura y métodos principales

La clase Init debe extender de InitClass, y proporciona tres métodos clave:

  • init(): Se ejecuta cada vez que se carga FacturaScripts (con el plugin activo). Utilízalo para cargar extensiones de modelos, extensiones de controladores, iniciar workers u otras funciones de inicialización.
  • update(): Se ejecuta al activar el plugin y al actualizarlo (si está activo), permitiendo aplicar cambios en la estructura de datos o configuraciones necesarias para la nueva versión. Ten en cuenta que instalar el plugin sin activarlo no ejecuta este método.
  • uninstall(): Se invoca al desactivar el plugin. En este método puedes realizar tareas de limpieza como eliminar datos, archivos asociados o modificar configuraciones.

📋 Ejemplo básico de Init.php

<?php

namespace FacturaScripts\Plugins\MyNewPlugin;

use FacturaScripts\Core\Template\InitClass;

class Init extends InitClass
{
    public function init(): void
    {
        // Código que se ejecuta al cargar FacturaScripts si el plugin está activado
    }

    public function uninstall(): void
    {
        // Limpieza de datos o configuraciones al desactivar el plugin
    }

    public function update(): void
    {
        // Ajustes al activar o actualizar el plugin
    }
}

🧰 Utilidades de InitClass

Además, InitClass ofrece algunos métodos de ayuda para usar dentro de init() o update():

  • loadExtension(): Carga una extensión de modelo o de controlador. Además de modelos y controladores concretos, admite clases base para extender varios a la vez: BusinessDocument, SalesDocument, PurchaseDocument (y sus líneas), o todos los controladores EditController o ListController.
public function init(): void
{
    $this->loadExtension(new Extension\Model\Cliente());
}
  • updateTableData(): Vuelca de nuevo en la tabla los datos del archivo CSV correspondiente de la carpeta Data del plugin. Útil en update() para refrescar datos predefinidos tras una actualización.
public function update(): void
{
    $this->updateTableData('mi_tabla');
}

📦 Cómo usar Composer en un plugin

Si tu plugin va a utilizar librerías externas gestionadas con Composer, añade la siguiente línea justo después de declarar el namespace en Init.php. Esto asegura que se carguen automáticamente las dependencias definidas:

require_once __DIR__ . '/vendor/autoload.php';

Nota: Antes, ejecuta composer init o composer install dentro del directorio del plugin para generar el autoload correspondiente.

Ejemplo ampliado con Composer:

<?php

namespace FacturaScripts\Plugins\MyNewPlugin;

use FacturaScripts\Core\Template\InitClass;

require_once __DIR__ . '/vendor/autoload.php';

class Init extends InitClass
{
    // Lógica de integración de tu plugin...
}

Consideraciones sobre composer.json

FacturaScripts requiere PHP 8.1 o superior. Para asegurar la compatibilidad, debes indicar la versión de PHP en tu archivo composer.json:

"config": {
   "platform": {
      "php": "8.1"
   }
}
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2026 FacturaScripts
0.18651s

Soporte