Kernel
in package
El corazón de FacturaScripts. Se encarga de gestionar las rutas y ejecutar los controladores.
Table of Contents
Properties
- $mock_execution_time : float|null
- $routes : array<string|int, mixed>
- $routesCallbacks : array<string|int, Closure>
- $timers : array<string|int, mixed>
Methods
- addRoute() : void
- Añade una ruta y el controlador que la atiende.
- addRoutes() : void
- Registra una función que añadirá rutas cuando se reconstruyan con rebuildRoutes().
- clearRoutes() : void
- Elimina todas las rutas registradas.
- getExecutionTime() : float
- Devuelve los segundos transcurridos desde el arranque de FacturaScripts, o el tiempo simulado si se ha establecido con setMockExecutionTime().
- getTimer() : float
- Devuelve los segundos transcurridos del temporizador indicado, entre su inicio y su parada, o hasta ahora si sigue en marcha. 0.0 si no existe.
- getTimers() : array<string|int, mixed>
- Devuelve todos los temporizadores, con su inicio, parada y memoria usada.
- init() : void
- Inicializa FacturaScripts: define las constantes de compatibilidad con versiones antiguas, establece el idioma, y carga los mods y workers.
- lock() : bool
- Intenta bloquear el proceso indicado para que no se ejecute más de una vez a la vez, mediante un archivo de bloqueo en MyFiles. Los bloqueos de más de 2 horas se descartan.
- rebuildRoutes() : void
- Reconstruye todas las rutas: las predeterminadas, una por cada controlador de Dinamic/Controller, y las registradas con addRoutes(). Después se pueden guardar con saveRoutes().
- run() : void
- Ejecuta el controlador correspondiente a la url indicada. Si se produce una excepción, la gestiona con el controlador de errores adecuado.
- saveRoutes() : bool
- Guarda las rutas en el archivo MyFiles/routes.json, de donde se cargarán en las siguientes peticiones.
- setMockExecutionTime() : void
- Establece un tiempo de ejecución simulado para los tests.
- startTimer() : void
- Inicia un temporizador con el nombre indicado, anotando el momento y la memoria en uso. Si ya existía, lo reinicia.
- stopTimer() : float
- Detiene el temporizador indicado y devuelve los segundos transcurridos.
- unlock() : bool
- Libera el bloqueo del proceso indicado, eliminando su archivo de bloqueo.
- version() : float
- Devuelve la versión de FacturaScripts.
- checkControllerClass() : array<string|int, mixed>
- Resuelve la clase del controlador: si no tiene namespace, lo busca en Dinamic, y si la clase no existe, en Core.
- finishRequest() : void
- Envía la respuesta al cliente y cierra la conexión, para que el trabajo que quede pendiente en el servidor no haga esperar al navegador. En modo cli no hace nada.
- getErrorHandler() : ErrorControllerInterface
- Devuelve el controlador de errores adecuado para la excepción: el que indique la propia excepción si es una KernelException, o DefaultError en su defecto, dando prioridad a las versiones de Dinamic.
- getRelativeUrl() : string
- Devuelve la url relativa, sin la ruta base de la instalación, saneada para prevenir path traversal.
- loadDefaultRoutes() : void
- Añade las rutas predeterminadas: raíz, api, cron, login, archivos estáticos, etc.
- loadRoutes() : void
- Carga todas las rutas: si no hay base de datos configurada, solo el instalador; en caso contrario, las predeterminadas más las del archivo MyFiles/routes.json, ordenadas por posición.
- matchesRoute() : bool
- Comprueba si la url encaja con la ruta, ya sea por coincidencia exacta o por comodín (rutas terminadas en *).
- runController() : void
- Busca la primera ruta que encaje con la url y ejecuta su controlador.
Properties
$mock_execution_time
private
static float|null
$mock_execution_time
$routes
private
static array<string|int, mixed>
$routes
= []
$routesCallbacks
private
static array<string|int, Closure>
$routesCallbacks
= []
$timers
private
static array<string|int, mixed>
$timers
= []
Methods
addRoute()
Añade una ruta y el controlador que la atiende.
public
static addRoute(string $route, string $controller[, int $position = 0 ][, string $customId = '' ]) : void
Parameters
- $route : string
-
Ruta relativa, por ejemplo '/ListAsiento'. Si termina en *, actúa como comodín.
- $controller : string
-
Clase del controlador, con namespace completo.
- $position : int = 0
-
Prioridad de la ruta: se comprueban primero las de posición menor.
- $customId : string = ''
-
Identificador propio: si ya existe una ruta con el mismo, la reemplaza.
addRoutes()
Registra una función que añadirá rutas cuando se reconstruyan con rebuildRoutes().
public
static addRoutes(Closure $closure) : void
Parameters
- $closure : Closure
-
Función que recibe el array de rutas actuales.
clearRoutes()
Elimina todas las rutas registradas.
public
static clearRoutes() : void
getExecutionTime()
Devuelve los segundos transcurridos desde el arranque de FacturaScripts, o el tiempo simulado si se ha establecido con setMockExecutionTime().
public
static getExecutionTime([int $decimals = 5 ]) : float
Parameters
- $decimals : int = 5
-
Número de decimales del resultado.
Return values
floatgetTimer()
Devuelve los segundos transcurridos del temporizador indicado, entre su inicio y su parada, o hasta ahora si sigue en marcha. 0.0 si no existe.
public
static getTimer(string $name) : float
Parameters
- $name : string
-
Nombre del temporizador.
Return values
floatgetTimers()
Devuelve todos los temporizadores, con su inicio, parada y memoria usada.
public
static getTimers() : array<string|int, mixed>
Return values
array<string|int, mixed>init()
Inicializa FacturaScripts: define las constantes de compatibilidad con versiones antiguas, establece el idioma, y carga los mods y workers.
public
static init() : void
lock()
Intenta bloquear el proceso indicado para que no se ejecute más de una vez a la vez, mediante un archivo de bloqueo en MyFiles. Los bloqueos de más de 2 horas se descartan.
public
static lock(string $processName) : bool
Parameters
- $processName : string
-
Nombre del proceso a bloquear.
Return values
bool —True si se ha conseguido el bloqueo, false si ya estaba bloqueado.
rebuildRoutes()
Reconstruye todas las rutas: las predeterminadas, una por cada controlador de Dinamic/Controller, y las registradas con addRoutes(). Después se pueden guardar con saveRoutes().
public
static rebuildRoutes() : void
run()
Ejecuta el controlador correspondiente a la url indicada. Si se produce una excepción, la gestiona con el controlador de errores adecuado.
public
static run(string $url) : void
Parameters
- $url : string
-
Url solicitada.
saveRoutes()
Guarda las rutas en el archivo MyFiles/routes.json, de donde se cargarán en las siguientes peticiones.
public
static saveRoutes() : bool
Return values
boolsetMockExecutionTime()
Establece un tiempo de ejecución simulado para los tests.
public
static setMockExecutionTime(float|null $seconds) : void
Parameters
- $seconds : float|null
-
Segundos simulados, null para volver al tiempo real.
startTimer()
Inicia un temporizador con el nombre indicado, anotando el momento y la memoria en uso. Si ya existía, lo reinicia.
public
static startTimer(string $name) : void
Parameters
- $name : string
-
Nombre del temporizador.
stopTimer()
Detiene el temporizador indicado y devuelve los segundos transcurridos.
public
static stopTimer(string $name) : float
Si no existía, lo crea en ese momento.
Parameters
- $name : string
-
Nombre del temporizador.
Return values
floatunlock()
Libera el bloqueo del proceso indicado, eliminando su archivo de bloqueo.
public
static unlock(string $processName) : bool
Parameters
- $processName : string
-
Nombre del proceso a desbloquear.
Return values
bool —True si existía el bloqueo y se ha eliminado.
version()
Devuelve la versión de FacturaScripts.
public
static version() : float
Return values
floatcheckControllerClass()
Resuelve la clase del controlador: si no tiene namespace, lo busca en Dinamic, y si la clase no existe, en Core.
private
static checkControllerClass(string $controller) : array<string|int, mixed>
Parameters
- $controller : string
-
Clase del controlador, con o sin namespace.
Return values
array<string|int, mixed> —La clase resuelta y el nombre del controlador.
finishRequest()
Envía la respuesta al cliente y cierra la conexión, para que el trabajo que quede pendiente en el servidor no haga esperar al navegador. En modo cli no hace nada.
private
static finishRequest() : void
getErrorHandler()
Devuelve el controlador de errores adecuado para la excepción: el que indique la propia excepción si es una KernelException, o DefaultError en su defecto, dando prioridad a las versiones de Dinamic.
private
static getErrorHandler(Exception $exception) : ErrorControllerInterface
Parameters
- $exception : Exception
-
Excepción a gestionar.
Return values
ErrorControllerInterfacegetRelativeUrl()
Devuelve la url relativa, sin la ruta base de la instalación, saneada para prevenir path traversal.
private
static getRelativeUrl(string $url) : string
Parameters
- $url : string
-
Url solicitada.
Return values
stringloadDefaultRoutes()
Añade las rutas predeterminadas: raíz, api, cron, login, archivos estáticos, etc.
private
static loadDefaultRoutes() : void
Para cada una usa el controlador de Dinamic si existe, o el de Core en su defecto.
loadRoutes()
Carga todas las rutas: si no hay base de datos configurada, solo el instalador; en caso contrario, las predeterminadas más las del archivo MyFiles/routes.json, ordenadas por posición.
private
static loadRoutes() : void
matchesRoute()
Comprueba si la url encaja con la ruta, ya sea por coincidencia exacta o por comodín (rutas terminadas en *).
private
static matchesRoute(string $url, string $route) : bool
Parameters
- $url : string
-
Url relativa a comprobar.
- $route : string
-
Ruta registrada.
Return values
boolrunController()
Busca la primera ruta que encaje con la url y ejecuta su controlador.
private
static runController(string $url) : void
Si ninguna encaja, lanza una KernelException de página no encontrada.
Parameters
- $url : string
-
Url relativa solicitada.