CronJob
extends ModelClass
in package
uses
ModelTrait
Class to store log information when a plugin is executed from cron.
Tags
Table of Contents
Constants
- STALE_HOURS : int = 6
Properties
- $daily_exec : mixed
- Número de ejecuciones completadas durante el día actual.
- $date : mixed
- Fecha y hora de la última ejecución del trabajo.
- $done : mixed
- Indica si la ejecución del trabajo ha finalizado.
- $duration : mixed
- Duración en segundos de la última ejecución.
- $enabled : mixed
- Indica si el trabajo programado está habilitado.
- $failed : mixed
- Indica si la última ejecución terminó con un error.
- $fails : mixed
- Número acumulado de ejecuciones fallidas.
- $id : mixed
- Identificador único del trabajo programado.
- $jobname : mixed
- Nombre identificativo del trabajo programado.
- $last_duration : mixed
- Duración en segundos de la ejecución anterior a la última.
- $pluginname : mixed
- Nombre del plugin propietario del trabajo programado.
- $running : mixed
- Número de ejecuciones simultáneas actualmente en curso.
- $attributes : array<string|int, mixed>
- The model's attributes.
- $dataBase : DataBase
- It provides direct access to the database.
- $fields : array<string|int, mixed>
- Lista de campos de la tabla del modelo.
- $original : array<string|int, mixed>
- The model's original attributes.
- $max_execution_time : mixed
- Tiempo máximo permitido para el conjunto del cron, en segundos.
- $max_execution_time_logged : mixed
- Indica si el exceso de tiempo máximo ya se registró en el log.
- $mock_date_time : mixed
- Fecha y hora simuladas utilizadas durante los tests.
- $mock_microtime : mixed
- Marca de tiempo simulada utilizada durante los tests.
- $overlapping : mixed
- Indica si se ha detectado otra ejecución incompatible en curso.
- $ready : mixed
- Indica si el trabajo debe ejecutarse según su programación.
- $start : mixed
- Marca de tiempo utilizada para medir el inicio de la ejecución.
Methods
- __construct() : mixed
- Inicializa el modelo, comprueba su tabla y carga los datos proporcionados.
- __get() : mixed
- Devuelve el valor de un atributo dinámico.
- __isset() : bool
- Comprueba si existe un atributo dinámico con valor no nulo.
- __set() : void
- Asigna el valor de un atributo dinámico.
- __unset() : void
- Elimina un atributo dinámico.
- addApiFieldToHide() : void
- Añade un campo a la lista de campos que no deben exponerse en la API.
- addExtension() : void
- Añade una extensión al modelo con la prioridad indicada.
- all() : array<string|int, static>
- Devuelve todos los registros que cumplen las condiciones.
- allWhereEq() : array<string|int, static>
- Devuelve todos los registros donde el campo es igual al valor.
- changeId() : bool
- Cambia el valor de la clave primaria del registro.
- changePrimaryColumnValue() : bool
- Cambia el valor de la clave primaria del registro.
- clear() : void
- Restablece los valores por defecto de todas las propiedades del modelo.
- clearCache() : void
- Elimina de la caché los datos relacionados con el modelo y su tabla.
- clearMaxExecutionTime() : void
- Elimina el límite de tiempo máximo de ejecución del cron.
- clearMocks() : void
- Elimina la fecha y el tiempo simulados que se usan en los tests, volviendo al tiempo real.
- count() : int
- countWhereEq() : int
- Cuenta los registros donde el campo es igual al valor.
- create() : static|null
- delete() : bool
- Elimina el registro actual de la base de datos.
- deleteWhere() : bool
- every() : static
- Marca el job como listo si ha pasado el periodo indicado desde su última ejecución.
- everyDay() : static
- Marca el job como listo el día indicado de cada mes a partir de la hora señalada.
- everyDayAt() : static
- Marca el job como listo cada día a partir de la hora indicada.
- everyFridayAt() : static
- Marca el job como listo cada viernes a partir de la hora indicada.
- everyLastDayOfMonthAt() : static
- Marca el job como listo el último día de cada mes a partir de la hora indicada.
- everyMondayAt() : static
- Marca el job como listo cada lunes a partir de la hora indicada.
- everySaturdayAt() : static
- Marca el job como listo cada sábado a partir de la hora indicada.
- everySundayAt() : static
- Marca el job como listo cada domingo a partir de la hora indicada.
- everyThursdayAt() : static
- Marca el job como listo cada jueves a partir de la hora indicada.
- everyTuesdayAt() : static
- Marca el job como listo cada martes a partir de la hora indicada.
- everyWednesdayAt() : static
- Marca el job como listo cada miércoles a partir de la hora indicada.
- everyYearAt() : static
- Marca el job como listo una vez al año, el día y mes indicados, a partir de la hora señalada.
- exists() : bool
- Comprueba si el registro actual existe en la base de datos.
- find() : static|null
- findOrCreate() : static|null
- findWhere() : static|null
- findWhereEq() : static|null
- get() : static|false
- Busca un registro mediante su clave primaria y devuelve una nueva instancia.
- getApiFieldsToHide() : array<string|int, string>
- Devuelve los nombres de campos que no deben exponerse en la API (ni en GET, ni en el schema). Los modelos con datos sensibles deben sobrescribir este método fusionando con parent::getApiFieldsToHide().
- getDirty() : array<string|int, mixed>
- Devuelve un array asociativo con los campos modificados y sus valores actuales.
- getMaxExecutionTime() : int
- Devuelve el tiempo máximo de ejecución del cron en segundos, 0 si no hay límite.
- getModelFields() : array<string|int, mixed>
- Returns the list of fields in the table.
- getOriginal() : mixed|null
- Devuelve el valor original de un campo, si no se indica campo devuelve todo el array original
- hasChanged() : bool
- hasColumn() : bool
- Comprueba si el modelo contiene la columna indicada.
- hasExtension() : bool
- Comprueba si el modelo tiene registrada la extensión indicada.
- id() : mixed
- Devuelve el valor de la clave primaria del modelo.
- install() : string
- Devuelve el SQL inicial necesario para instalar los datos del modelo.
- isDirty() : bool
- Comprueba si los campos del modelo han sido modificados.
- isMaxExecutionTimeReached() : bool
- Devuelve true si se ha superado el tiempo máximo de ejecución del cron, en cuyo caso los jobs pendientes se rechazan hasta la siguiente ejecución.
- isReady() : bool
- Devuelve true si el job debe ejecutarse: le toca según su programación (every*), no hay solapamiento (withoutOverlapping) y no se ha superado el tiempo máximo de ejecución del cron.
- load() : bool
- Carga un modelo dada su primary key
- loadFromCode() : bool
- Carga un registro del modelo utilizando un código y opcionalmente condiciones adicionales.
- loadFromData() : void
- Carga los campos y atributos del modelo desde un array.
- loadWhere() : bool
- Carga el primer registro que coincida con las condiciones especificadas.
- loadWhereEq() : bool
- Carga el primer registro cuyo campo coincide con el valor indicado.
- maxLength() : int
- Devuelve la longitud máxima de un campo de texto, o 0 si no tiene límite o no es un campo de texto.
- modelClassName() : string
- Returns the name of the class of the model.
- newCode() : int
- Calcula el siguiente código numérico disponible para un campo.
- pipe() : mixed
- Ejecuta las extensiones asociadas al punto indicado y devuelve su resultado.
- pipeFalse() : bool
- Ejecuta las extensiones y devuelve false si alguna cancela la operación.
- primaryColumn() : string
- primaryColumnValue() : mixed
- Devuelve el valor de la clave primaria del modelo.
- primaryDescription() : mixed
- Devuelve la descripción principal del registro.
- primaryDescriptionColumn() : string
- Devuelve el nombre de la columna utilizada como descripción principal.
- releaseIfStale() : bool
- Si el job lleva más de STALE_HOURS horas en ejecución, se considera un proceso zombie (murió sin liberar el contador) y se libera.
- reload() : bool
- Vuelve a cargar desde la base de datos el registro actual.
- run() : bool
- Ejecuta la función si el job está listo (isReady), guardando fecha, duración y resultado. Captura cualquier excepción o error, lo registra en el log y marca el job como fallido.
- save() : bool
- Guarda el modelo en la base de datos después de ejecutar las comprobaciones `$this->test()`
- setMaxExecutionTime() : void
- Define el tiempo máximo de ejecución del cron en su conjunto. Una vez superado, los jobs pendientes se rechazan y se ejecutarán en las siguientes pasadas del cron.
- setMockDateTime() : void
- Establece una fecha y hora simuladas para los tests.
- setMockMicrotime() : void
- Establece un microtime simulado para los tests.
- syncOriginal() : void
- Sincroniza los valores actuales con la copia original del modelo.
- table() : DbQuery
- tableName() : string
- Devuelve el nombre de la tabla en la base de datos.
- test() : bool
- Valida y sanea los datos del modelo antes de guardar.
- toArray() : array<string|int, mixed>
- Devuelve un array con los campos y valores del modelo.
- totalSum() : float
- update() : bool
- Actualiza el modelo con los valores proporcionados en el array
- updateOrCreate() : static|null
- url() : string
- Devuelve la url del registro o de su listado.
- withoutOverlapping() : static
- Impide que el job se ejecute mientras haya otros jobs en ejecución.
- belongsTo() : object|null
- Define una relación uno a uno.
- db() : DataBase
- getCurrentDateTime() : string
- Devuelve la fecha y hora actuales, o las simuladas si se han establecido para los tests.
- getCurrentMicrotime() : float
- Devuelve el microtime actual, o el simulado si se ha establecido para los tests.
- getCurrentTimestamp() : int
- Devuelve el timestamp actual, o el simulado si se ha establecido para los tests.
- hasMany() : array<string|int, mixed>
- Define una relación uno a muchos.
- loadModelFields() : void
- onChange() : bool
- Comprueba un campo modificado antes de actualizar el registro.
- onDelete() : void
- Este método se llama al eliminar un registro de la base de datos.
- onInsert() : void
- Este método se llama al insertar un nuevo registro en la base de datos (saveInsert).
- onUpdate() : void
- Este método se llama al actualizar un registro en la base de datos.
- saveInsert() : bool
- Inserta un nuevo registro en la base de datos.
- saveUpdate() : bool
- Este método se llama al actualizar un registro existente en la base de datos.
- everyDayAux() : static
- Lógica común de los métodos every*: calcula si el job está listo comparando su última ejecución con la fecha y hora programadas.
Constants
STALE_HOURS
public
int
STALE_HOURS
= 6
Properties
$daily_exec
Número de ejecuciones completadas durante el día actual.
public
mixed
$daily_exec
@var int
$date
Fecha y hora de la última ejecución del trabajo.
public
mixed
$date
@var string
$done
Indica si la ejecución del trabajo ha finalizado.
public
mixed
$done
@var bool
$duration
Duración en segundos de la última ejecución.
public
mixed
$duration
@var float
$enabled
Indica si el trabajo programado está habilitado.
public
mixed
$enabled
@var bool
$failed
Indica si la última ejecución terminó con un error.
public
mixed
$failed
@var bool
$fails
Número acumulado de ejecuciones fallidas.
public
mixed
$fails
@var int
$id
Identificador único del trabajo programado.
public
mixed
$id
@var int
$jobname
Nombre identificativo del trabajo programado.
public
mixed
$jobname
@var string
$last_duration
Duración en segundos de la ejecución anterior a la última.
public
mixed
$last_duration
@var float
$pluginname
Nombre del plugin propietario del trabajo programado.
public
mixed
$pluginname
@var string
$running
Número de ejecuciones simultáneas actualmente en curso.
public
mixed
$running
@var int
$attributes
The model's attributes.
protected
array<string|int, mixed>
$attributes
= []
$dataBase
It provides direct access to the database.
protected
static DataBase
$dataBase
$fields
Lista de campos de la tabla del modelo.
protected
static array<string|int, mixed>
$fields
= []
$original
The model's original attributes.
protected
array<string|int, mixed>
$original
= []
$max_execution_time
Tiempo máximo permitido para el conjunto del cron, en segundos.
private
static mixed
$max_execution_time
= 0
@var int
$max_execution_time_logged
Indica si el exceso de tiempo máximo ya se registró en el log.
private
static mixed
$max_execution_time_logged
= false
@var bool
$mock_date_time
Fecha y hora simuladas utilizadas durante los tests.
private
mixed
$mock_date_time
@var string|null
$mock_microtime
Marca de tiempo simulada utilizada durante los tests.
private
mixed
$mock_microtime
@var float|null
$overlapping
Indica si se ha detectado otra ejecución incompatible en curso.
private
mixed
$overlapping
= false
@var bool
$ready
Indica si el trabajo debe ejecutarse según su programación.
private
mixed
$ready
= false
@var bool
$start
Marca de tiempo utilizada para medir el inicio de la ejecución.
private
mixed
$start
@var float
Methods
__construct()
Inicializa el modelo, comprueba su tabla y carga los datos proporcionados.
public
__construct([array<string|int, mixed> $data = [] ]) : mixed
Parameters
- $data : array<string|int, mixed> = []
__get()
Devuelve el valor de un atributo dinámico.
public
__get(string $key) : mixed
Parameters
- $key : string
__isset()
Comprueba si existe un atributo dinámico con valor no nulo.
public
__isset(string $key) : bool
Parameters
- $key : string
Return values
bool__set()
Asigna el valor de un atributo dinámico.
public
__set(string $key, mixed $value) : void
Parameters
- $key : string
- $value : mixed
__unset()
Elimina un atributo dinámico.
public
__unset(string $key) : void
Parameters
- $key : string
addApiFieldToHide()
Añade un campo a la lista de campos que no deben exponerse en la API.
public
static addApiFieldToHide(string $field) : void
Solo permite añadir: los campos ocultos por el core no se pueden quitar.
Parameters
- $field : string
addExtension()
Añade una extensión al modelo con la prioridad indicada.
public
abstract static addExtension(mixed $extension[, int $priority = 100 ]) : void
Parameters
- $extension : mixed
- $priority : int = 100
all()
Devuelve todos los registros que cumplen las condiciones.
public
static all([array<string|int, mixed> $where = [] ][, array<string|int, mixed> $order = [] ][, int $offset = 0 ][, int $limit = 0 ]) : array<string|int, static>
Parameters
- $where : array<string|int, mixed> = []
- $order : array<string|int, mixed> = []
- $offset : int = 0
- $limit : int = 0
Return values
array<string|int, static>allWhereEq()
Devuelve todos los registros donde el campo es igual al valor.
public
static allWhereEq(string $field, mixed $value[, array<string|int, mixed> $order = [] ]) : array<string|int, static>
Parameters
- $field : string
- $value : mixed
- $order : array<string|int, mixed> = []
Return values
array<string|int, static>changeId()
Cambia el valor de la clave primaria del registro.
public
changeId(mixed $new_id) : bool
Parameters
- $new_id : mixed
Return values
boolchangePrimaryColumnValue()
Cambia el valor de la clave primaria del registro.
public
changePrimaryColumnValue(mixed $new_id) : bool
replace with changeId()
Parameters
- $new_id : mixed
Return values
boolclear()
Restablece los valores por defecto de todas las propiedades del modelo.
public
clear() : void
clearCache()
Elimina de la caché los datos relacionados con el modelo y su tabla.
public
clearCache() : void
clearMaxExecutionTime()
Elimina el límite de tiempo máximo de ejecución del cron.
public
static clearMaxExecutionTime() : void
clearMocks()
Elimina la fecha y el tiempo simulados que se usan en los tests, volviendo al tiempo real.
public
clearMocks() : void
count()
public
static count([array<string|int, mixed> $where = [] ]) : int
Parameters
- $where : array<string|int, mixed> = []
Return values
intcountWhereEq()
Cuenta los registros donde el campo es igual al valor.
public
static countWhereEq(string $field, mixed $value) : int
Parameters
- $field : string
- $value : mixed
Return values
intcreate()
public
static create(array<string|int, mixed> $data) : static|null
Parameters
- $data : array<string|int, mixed>
Return values
static|nulldelete()
Elimina el registro actual de la base de datos.
public
delete() : bool
Return values
booldeleteWhere()
public
static deleteWhere(array<string|int, mixed> $where) : bool
Parameters
- $where : array<string|int, mixed>
Return values
boolevery()
Marca el job como listo si ha pasado el periodo indicado desde su última ejecución.
public
every(string $period) : static
Ejemplo: $job->every('6 hours')->run(...);
Parameters
- $period : string
-
Periodo en formato strtotime: '1 hour', '30 minutes', '2 days', etc.
Return values
staticeveryDay()
Marca el job como listo el día indicado de cada mes a partir de la hora señalada.
public
everyDay(int $day, int $hour[, bool $strict = false ]) : static
Parameters
- $day : int
-
Día del mes (1 a 31).
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeveryDayAt()
Marca el job como listo cada día a partir de la hora indicada.
public
everyDayAt(int $hour[, bool $strict = false ]) : static
Parameters
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeveryFridayAt()
Marca el job como listo cada viernes a partir de la hora indicada.
public
everyFridayAt(int $hour[, bool $strict = false ]) : static
Parameters
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeveryLastDayOfMonthAt()
Marca el job como listo el último día de cada mes a partir de la hora indicada.
public
everyLastDayOfMonthAt(int $hour[, bool $strict = false ]) : static
Parameters
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeveryMondayAt()
Marca el job como listo cada lunes a partir de la hora indicada.
public
everyMondayAt(int $hour[, bool $strict = false ]) : static
Parameters
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeverySaturdayAt()
Marca el job como listo cada sábado a partir de la hora indicada.
public
everySaturdayAt(int $hour[, bool $strict = false ]) : static
Parameters
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeverySundayAt()
Marca el job como listo cada domingo a partir de la hora indicada.
public
everySundayAt(int $hour[, bool $strict = false ]) : static
Parameters
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeveryThursdayAt()
Marca el job como listo cada jueves a partir de la hora indicada.
public
everyThursdayAt(int $hour[, bool $strict = false ]) : static
Parameters
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeveryTuesdayAt()
Marca el job como listo cada martes a partir de la hora indicada.
public
everyTuesdayAt(int $hour[, bool $strict = false ]) : static
Parameters
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeveryWednesdayAt()
Marca el job como listo cada miércoles a partir de la hora indicada.
public
everyWednesdayAt(int $hour[, bool $strict = false ]) : static
Parameters
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticeveryYearAt()
Marca el job como listo una vez al año, el día y mes indicados, a partir de la hora señalada.
public
everyYearAt(int $month, int $day, int $hour[, bool $strict = false ]) : static
Parameters
- $month : int
-
Mes del año (1 a 12).
- $day : int
-
Día del mes (1 a 31).
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool = false
-
Si es true, solo se ejecuta dentro de la hora programada. Si es false, recupera ejecuciones perdidas (estilo anacron).
Return values
staticexists()
Comprueba si el registro actual existe en la base de datos.
public
exists() : bool
Return values
boolfind()
public
static find(mixed $code) : static|null
Parameters
- $code : mixed
Return values
static|nullfindOrCreate()
public
static findOrCreate(array<string|int, mixed> $where[, array<string|int, mixed> $data = [] ]) : static|null
Parameters
- $where : array<string|int, mixed>
- $data : array<string|int, mixed> = []
Return values
static|nullfindWhere()
public
static findWhere(array<string|int, mixed> $where[, array<string|int, mixed> $order = [] ]) : static|null
Parameters
- $where : array<string|int, mixed>
- $order : array<string|int, mixed> = []
Return values
static|nullfindWhereEq()
public
static findWhereEq(string $field, mixed $value) : static|null
Parameters
- $field : string
- $value : mixed
Return values
static|nullget()
Busca un registro mediante su clave primaria y devuelve una nueva instancia.
public
get(mixed $code) : static|false
Use find() instead
Parameters
- $code : mixed
Return values
static|falsegetApiFieldsToHide()
Devuelve los nombres de campos que no deben exponerse en la API (ni en GET, ni en el schema). Los modelos con datos sensibles deben sobrescribir este método fusionando con parent::getApiFieldsToHide().
public
getApiFieldsToHide() : array<string|int, string>
Return values
array<string|int, string>getDirty()
Devuelve un array asociativo con los campos modificados y sus valores actuales.
public
getDirty() : array<string|int, mixed>
Return values
array<string|int, mixed>getMaxExecutionTime()
Devuelve el tiempo máximo de ejecución del cron en segundos, 0 si no hay límite.
public
static getMaxExecutionTime() : int
Return values
intgetModelFields()
Returns the list of fields in the table.
public
getModelFields() : array<string|int, mixed>
Return values
array<string|int, mixed>getOriginal()
Devuelve el valor original de un campo, si no se indica campo devuelve todo el array original
public
getOriginal([string|null $key = null ]) : mixed|null
Parameters
- $key : string|null = null
Return values
mixed|null —Devuelve el valor original del campo o null si no existe
hasChanged()
public
hasChanged(string $field) : bool
replace with isDirty()
Parameters
- $field : string
Return values
boolhasColumn()
Comprueba si el modelo contiene la columna indicada.
public
hasColumn(string $columnName) : bool
Parameters
- $columnName : string
Return values
boolhasExtension()
Comprueba si el modelo tiene registrada la extensión indicada.
public
abstract hasExtension(mixed $extension) : bool
Parameters
- $extension : mixed
Return values
boolid()
Devuelve el valor de la clave primaria del modelo.
public
id() : mixed
install()
Devuelve el SQL inicial necesario para instalar los datos del modelo.
public
install() : string
Return values
stringisDirty()
Comprueba si los campos del modelo han sido modificados.
public
isDirty([string|null $key = null ]) : bool
Devuelve true si hay cambios, false en caso contrario.
Si introduces un parámetro key, comprueba solo ese campo
Parameters
- $key : string|null = null
Return values
bool —true si ha sido modificado, false en caso contrario
isMaxExecutionTimeReached()
Devuelve true si se ha superado el tiempo máximo de ejecución del cron, en cuyo caso los jobs pendientes se rechazan hasta la siguiente ejecución.
public
static isMaxExecutionTimeReached() : bool
Return values
boolisReady()
Devuelve true si el job debe ejecutarse: le toca según su programación (every*), no hay solapamiento (withoutOverlapping) y no se ha superado el tiempo máximo de ejecución del cron.
public
isReady() : bool
Return values
boolload()
Carga un modelo dada su primary key
public
load(mixed $code) : bool
Parameters
- $code : mixed
-
Código o identificador del registro a cargar
Return values
bool —Devuelve true si se encontró y cargó un registro exitosamente.
loadFromCode()
Carga un registro del modelo utilizando un código y opcionalmente condiciones adicionales.
public
loadFromCode(mixed $code[, array<string|int, mixed> $where = [] ][, array<string|int, mixed> $order = [] ]) : bool
Usar load() cuando solo se necesita cargar por código, o loadWhere() cuando se requieren condiciones WHERE u ordenamiento adicionales.
IMPORTANTE: Este método está deprecado. Se recomienda usar las alternativas siguientes:
- Si solo se proporciona $code: usar directamente load($code)
- Si se proporciona $code junto con $where o $order: usar loadWhere() con las condiciones apropiadas
Este método actúa como wrapper que redirige a load() cuando solo se proporciona el código, o a loadWhere() cuando se incluyen condiciones WHERE u ordenamiento adicionales.
Parameters
- $code : mixed
-
Código o identificador del registro a cargar. Se usa únicamente cuando no se proporcionan condiciones WHERE adicionales.
- $where : array<string|int, mixed> = []
-
Array de instancias de Where o DatabaseWhere que definen condiciones de filtrado adicionales. Si se proporciona, el método delega a loadWhere(). Por defecto es un array vacío.
- $order : array<string|int, mixed> = []
-
Array asociativo que define el ordenamiento de los resultados. Las claves son nombres de columnas y los valores la dirección del ordenamiento. Por defecto es un array vacío.
Return values
bool —Retorna true si se encontró y cargó un registro exitosamente. Retorna false si no se encontró ningún registro.
loadFromData()
Carga los campos y atributos del modelo desde un array.
public
loadFromData([array<string|int, mixed> $data = [] ][, array<string|int, mixed> $exclude = [] ][, bool $sync = true ]) : void
Parameters
- $data : array<string|int, mixed> = []
- $exclude : array<string|int, mixed> = []
-
Campos que no se deben cargar.
- $sync : bool = true
-
Indica si se deben sincronizar los valores originales.
loadWhere()
Carga el primer registro que coincida con las condiciones especificadas.
public
loadWhere(array<string|int, mixed> $where[, array<string|int, mixed> $order = [] ]) : bool
Este método consulta la tabla asociada al modelo aplicando las condiciones WHERE proporcionadas y el ordenamiento especificado. Si encuentra un registro, carga sus datos en la instancia actual del modelo. Si no encuentra ningún registro, limpia la instancia y retorna false.
Parameters
- $where : array<string|int, mixed>
-
Array de instancias de Where o DatabaseWhere que definen las condiciones de filtrado para la consulta. Cada elemento representa una condición que debe cumplir el registro a cargar.
- $order : array<string|int, mixed> = []
-
Array asociativo que define el ordenamiento de los resultados. Las claves son nombres de columnas y los valores indican la dirección del ordenamiento (ej: ['id' => 'DESC', 'nombre' => 'ASC']). Por defecto es un array vacío (sin ordenamiento específico).
Return values
bool —Retorna true si se encontró y cargó un registro exitosamente. Retorna false si no se encontró ningún registro que cumpla las condiciones.
loadWhereEq()
Carga el primer registro cuyo campo coincide con el valor indicado.
public
loadWhereEq(string $field, mixed $value) : bool
Parameters
- $field : string
- $value : mixed
Return values
boolmaxLength()
Devuelve la longitud máxima de un campo de texto, o 0 si no tiene límite o no es un campo de texto.
public
maxLength(string $field) : int
Parameters
- $field : string
-
Nombre del campo
Return values
int —Longitud máxima del campo
modelClassName()
Returns the name of the class of the model.
public
modelClassName() : string
Return values
stringnewCode()
Calcula el siguiente código numérico disponible para un campo.
public
newCode([string $field = '' ][, array<string|int, mixed> $where = [] ]) : int
Parameters
- $field : string = ''
- $where : array<string|int, mixed> = []
Return values
intpipe()
Ejecuta las extensiones asociadas al punto indicado y devuelve su resultado.
public
abstract pipe(mixed $name, mixed ...$arguments) : mixed
Parameters
- $name : mixed
- $arguments : mixed
pipeFalse()
Ejecuta las extensiones y devuelve false si alguna cancela la operación.
public
abstract pipeFalse(mixed $name, mixed ...$arguments) : bool
Parameters
- $name : mixed
- $arguments : mixed
Return values
boolprimaryColumn()
public
abstract static primaryColumn() : string
Return values
stringprimaryColumnValue()
Devuelve el valor de la clave primaria del modelo.
public
primaryColumnValue() : mixed
Use id() instead
Attributes
- #[Deprecated]
- $reason: 'Use id() instead'
- $replacement: '%class%->id()'
primaryDescription()
Devuelve la descripción principal del registro.
public
primaryDescription() : mixed
primaryDescriptionColumn()
Devuelve el nombre de la columna utilizada como descripción principal.
public
primaryDescriptionColumn() : string
Return values
stringreleaseIfStale()
Si el job lleva más de STALE_HOURS horas en ejecución, se considera un proceso zombie (murió sin liberar el contador) y se libera.
public
releaseIfStale() : bool
Return values
bool —True si el job estaba zombie y se ha liberado.
reload()
Vuelve a cargar desde la base de datos el registro actual.
public
reload() : bool
Return values
boolrun()
Ejecuta la función si el job está listo (isReady), guardando fecha, duración y resultado. Captura cualquier excepción o error, lo registra en el log y marca el job como fallido.
public
run(Closure $function) : bool
Parameters
- $function : Closure
-
Función a ejecutar.
Return values
bool —True si se ha ejecutado sin errores.
save()
Guarda el modelo en la base de datos después de ejecutar las comprobaciones `$this->test()`
public
save() : bool
Return values
bool —Devuelve true si se ha guardado correctamente, false en caso contrario
setMaxExecutionTime()
Define el tiempo máximo de ejecución del cron en su conjunto. Una vez superado, los jobs pendientes se rechazan y se ejecutarán en las siguientes pasadas del cron.
public
static setMaxExecutionTime(int $seconds) : void
No interrumpe el job en ejecución. Se puede llamar desde el Init de un plugin.
Parameters
- $seconds : int
-
Límite en segundos. Si varios plugins definen límites distintos, se aplica el más restrictivo.
setMockDateTime()
Establece una fecha y hora simuladas para los tests.
public
setMockDateTime(string|null $dateTime[, bool $update_microtime = true ]) : void
Parameters
- $dateTime : string|null
-
Fecha y hora simuladas, null para volver al tiempo real.
- $update_microtime : bool = true
-
Si es true, también simula el microtime con esa fecha.
setMockMicrotime()
Establece un microtime simulado para los tests.
public
setMockMicrotime(float|null $microtime) : void
Parameters
- $microtime : float|null
-
Timestamp con decimales, null para volver al tiempo real.
syncOriginal()
Sincroniza los valores actuales con la copia original del modelo.
public
syncOriginal() : void
table()
public
static table() : DbQuery
Return values
DbQuerytableName()
Devuelve el nombre de la tabla en la base de datos.
public
static tableName() : string
Return values
stringtest()
Valida y sanea los datos del modelo antes de guardar.
public
test() : bool
Return values
booltoArray()
Devuelve un array con los campos y valores del modelo.
public
toArray([bool $dynamic_attributes = false ]) : array<string|int, mixed>
Parameters
- $dynamic_attributes : bool = false
-
Si es true, añade también los atributos dinámicos al array resultante
Return values
array<string|int, mixed> —Array asociativo con los campos y valores del modelo
totalSum()
public
static totalSum(string $field[, array<string|int, mixed> $where = [] ]) : float
Parameters
- $field : string
- $where : array<string|int, mixed> = []
Return values
floatupdate()
Actualiza el modelo con los valores proporcionados en el array
public
update(array<string|int, mixed> $values) : bool
Parameters
- $values : array<string|int, mixed>
-
Array asociativo con los campos y valores a actualizar
Return values
bool —Devuelve true si la actualización se ha realizado correctamente, false en caso
updateOrCreate()
public
static updateOrCreate(array<string|int, mixed> $where, array<string|int, mixed> $data) : static|null
Parameters
- $where : array<string|int, mixed>
- $data : array<string|int, mixed>
Return values
static|nullurl()
Devuelve la url del registro o de su listado.
public
url([string $type = 'auto' ][, string $list = 'ListLogMessage?activetab=List' ]) : string
Parameters
- $type : string = 'auto'
-
Tipo de url: 'auto', 'edit', 'list' o 'new'.
- $list : string = 'ListLogMessage?activetab=List'
-
Controlador del listado.
Return values
stringwithoutOverlapping()
Impide que el job se ejecute mientras haya otros jobs en ejecución.
public
withoutOverlapping(string ...$jobs) : static
Ejemplo: $job->everyDayAt(2)->withoutOverlapping()->run(...);
Parameters
- $jobs : string
-
Nombres de los jobs con los que no debe solaparse. Si no se indica ninguno, se comprueban todos los demás.
Return values
staticbelongsTo()
Define una relación uno a uno.
protected
belongsTo(string $modelName, string $foreignKey) : object|null
Parameters
- $modelName : string
- $foreignKey : string
Return values
object|nulldb()
protected
abstract static db() : DataBase
Return values
DataBasegetCurrentDateTime()
Devuelve la fecha y hora actuales, o las simuladas si se han establecido para los tests.
protected
getCurrentDateTime([string|null $date = null ]) : string
Parameters
- $date : string|null = null
-
Fecha a formatear; null para la actual.
Return values
stringgetCurrentMicrotime()
Devuelve el microtime actual, o el simulado si se ha establecido para los tests.
protected
getCurrentMicrotime() : float
Return values
floatgetCurrentTimestamp()
Devuelve el timestamp actual, o el simulado si se ha establecido para los tests.
protected
getCurrentTimestamp() : int
Return values
inthasMany()
Define una relación uno a muchos.
protected
hasMany(string $modelName, string $foreignKey[, array<string|int, mixed> $where = [] ][, array<string|int, mixed> $order = [] ][, bool $cached = false ]) : array<string|int, mixed>
Parameters
- $modelName : string
- $foreignKey : string
- $where : array<string|int, mixed> = []
- $order : array<string|int, mixed> = []
- $cached : bool = false
-
usar solo en relaciones de solo lectura y de listas pequeñas y cerradas
Return values
array<string|int, mixed>loadModelFields()
protected
loadModelFields() : void
onChange()
Comprueba un campo modificado antes de actualizar el registro.
protected
onChange(string $field) : bool
Parameters
- $field : string
Return values
boolonDelete()
Este método se llama al eliminar un registro de la base de datos.
protected
onDelete() : void
onInsert()
Este método se llama al insertar un nuevo registro en la base de datos (saveInsert).
protected
onInsert() : void
onUpdate()
Este método se llama al actualizar un registro en la base de datos.
protected
onUpdate() : void
saveInsert()
Inserta un nuevo registro en la base de datos.
protected
saveInsert() : bool
Return values
boolsaveUpdate()
Este método se llama al actualizar un registro existente en la base de datos.
protected
saveUpdate() : bool
Return values
bool —Devuelve true si la actualización se realizó correctamente, false en caso contrario
everyDayAux()
Lógica común de los métodos every*: calcula si el job está listo comparando su última ejecución con la fecha y hora programadas.
private
everyDayAux(string $date, int $hour, bool $strict[, string $period = '1 day' ]) : static
Parameters
- $date : string
-
Fecha programada (Y-m-d).
- $hour : int
-
Hora del día (0 a 23).
- $strict : bool
-
Si es true, solo dentro de la hora programada; si es false, recupera ejecuciones perdidas (estilo anacron).
- $period : string = '1 day'
-
Periodicidad en formato strtotime: '1 day', '7 days', '1 month', etc.