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, instalación, actualización o desinstalació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.
- uninstall(): Se invoca tras la desinstalación del plugin. En este método puedes realizar tareas de limpieza como eliminar datos, archivos asociados o modificar configuraciones.
- update(): Se ejecuta tanto en la instalación como la actualización del plugin, permitiendo aplicar cambios en la estructura de datos o configuraciones necesarias para la nueva versión.
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 desinstalar el plugin
}
public function update(): void
{
// Ajustes al instalar o actualizar el plugin
}
}
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 initocomposer installdentro 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 está basado en PHP 8.0. Para asegurar la compatibilidad, debes indicar la versión de PHP en tu archivo composer.json:
"config": {
"platform": {
"php": "8.0"
}
}