FacturaScripts

CronJob extends ModelClass
in package
uses ModelTrait

Class to store log information when a plugin is executed from cron.

Tags

Francesc Pineda Segarra [email protected]

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
bool

changePrimaryColumnValue()

Cambia el valor de la clave primaria del registro.

public changePrimaryColumnValue(mixed $new_id) : bool

replace with changeId()

Parameters
$new_id : mixed
Return values
bool

clear()

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
int

countWhereEq()

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
int

create()

public static create(array<string|int, mixed> $data) : static|null
Parameters
$data : array<string|int, mixed>
Return values
static|null

delete()

Elimina el registro actual de la base de datos.

public delete() : bool
Return values
bool

deleteWhere()

public static deleteWhere(array<string|int, mixed> $where) : bool
Parameters
$where : array<string|int, mixed>
Return values
bool

every()

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
static

everyDay()

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
static

everyDayAt()

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
static

everyFridayAt()

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
static

everyLastDayOfMonthAt()

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
static

everyMondayAt()

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
static

everySaturdayAt()

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
static

everySundayAt()

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
static

everyThursdayAt()

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
static

everyTuesdayAt()

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
static

everyWednesdayAt()

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
static

everyYearAt()

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
static

exists()

Comprueba si el registro actual existe en la base de datos.

public exists() : bool
Return values
bool

find()

public static find(mixed $code) : static|null
Parameters
$code : mixed
Return values
static|null

findOrCreate()

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|null

findWhere()

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|null

findWhereEq()

public static findWhereEq(string $field, mixed $value) : static|null
Parameters
$field : string
$value : mixed
Return values
static|null

get()

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|false

getApiFieldsToHide()

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
int

getModelFields()

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
bool

hasColumn()

Comprueba si el modelo contiene la columna indicada.

public hasColumn(string $columnName) : bool
Parameters
$columnName : string
Return values
bool

hasExtension()

Comprueba si el modelo tiene registrada la extensión indicada.

public abstract hasExtension(mixed $extension) : bool
Parameters
$extension : mixed
Return values
bool

id()

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
string

isDirty()

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
bool

isReady()

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
bool

load()

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
bool

maxLength()

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
string

newCode()

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
int

pipe()

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
bool

primaryColumn()

public abstract static primaryColumn() : string
Return values
string

primaryColumnValue()

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
string

releaseIfStale()

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
bool

run()

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

tableName()

Devuelve el nombre de la tabla en la base de datos.

public static tableName() : string
Return values
string

test()

Valida y sanea los datos del modelo antes de guardar.

public test() : bool
Return values
bool

toArray()

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
float

update()

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|null

url()

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
string

withoutOverlapping()

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
static

belongsTo()

Define una relación uno a uno.

protected belongsTo(string $modelName, string $foreignKey) : object|null
Parameters
$modelName : string
$foreignKey : string
Return values
object|null

getCurrentDateTime()

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
string

getCurrentMicrotime()

Devuelve el microtime actual, o el simulado si se ha establecido para los tests.

protected getCurrentMicrotime() : float
Return values
float

getCurrentTimestamp()

Devuelve el timestamp actual, o el simulado si se ha establecido para los tests.

protected getCurrentTimestamp() : int
Return values
int

hasMany()

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
bool

onDelete()

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
bool

saveUpdate()

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.

Return values
static
On this page

Search results