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'
)