Skip to content

Workflow de Componentes – Referencia de API

Namespace: Alxarafe\Component\Workflow

Componentes de máquina de estados para gestionar transiciones de estado de entidades.

StatusWorkflow

Implementación genérica de máquina de estados para gestionar estados del ciclo de vida de entidades.

Métodos

MétodoFirmaDescripción
addTransition()addTransition(StatusTransition $t): selfRegistra transición permitida.
canTransition()canTransition(string $from, string $to): boolVerifica si transición es válida.
apply()apply(Model $model, string $newStatus): boolAplica transición a un modelo.
getAvailableTransitions()getAvailableTransitions(string $current): arrayLista transiciones válidas.

Ejemplo

php
$workflow = new StatusWorkflow();
$workflow->addTransition(new StatusTransition('borrador', 'publicado', 'Publicar'));
$workflow->addTransition(new StatusTransition('publicado', 'archivado', 'Archivar'));

if ($workflow->canTransition($pedido->status, 'publicado')) {
    $workflow->apply($pedido, 'publicado');
}

StatusTransition

Objeto valor representando una transición de estado.

php
new StatusTransition(
    from: 'borrador',
    to: 'publicado',
    label: 'Publicar',
    icon: 'fas fa-check',
    permission: 'posts.publish'
)