Symfony Workflow
O componente de fluxo de trabalho
Camila Fernandes
Graduada em Análise de Sistema
desde 2013
Programadora PHP há 6 anos
Programadora Symfony 4 anos
Instrutora PHP
Evangelista PHPWomenBR
camilafernandesdev@gmail.com
@Kafernandesdev
O que é o Symfony
Workflow
Fornece ferramentas para gerenciar um fluxo de
trabalho ou uma máquina de estados
Criando um workflow
Instalando Symfony
Workflow
composer require workflow
Configuração do
Workflow
Para que o componente de fluxo de trabalho
funcione, precisamos configurar uma definição
de fluxo de trabalho , um repositório de
marcação e um assunto
Configuração do Workflow
Verificando e aplicando
transações
Workflow::can
Workflow::apply
Workflow::getEnabledTransitions
Verificando e aplicando
transações
Guard
Guard Events é executado cada vez que uma
chamada é feita, workflow::can, workflow:apply,
workflow::getEnableTransitions.
Com ele é possível adicionar uma lógica
personalizada para bloquear transações
Guard
Bloqueio de transações
A execução do Workflow pode ser controlada pela
execução de lógica personalizada
Bloqueio de transações
Workflow no Twig
workflow_can() - Retorna truese o objeto dado pode fazer a transição
dada.
workflow_transitions() - Retorna um array com todas as transições
habilitadas para o objeto dado.
workflow_marked_places() - Retorna uma matriz com os nomes dos
lugares da marcação especificada.
workflow_has_marked_place() - Retorna truese a marcação do objeto
dado tiver o estado especificado.
Workflow no Twig
Percorrendo transações
Verificando transações
Marking store
O Marking store controla o local onde o assunto
está dentro do fluxo de trabalho
Marking store
Por padrão, o Marking store manipulará a
propriedade ‘marking’
$var->marking
Máquinas de estado
Uma máquina de estado é um subconjunto de um
fluxo de trabalho e sua finalidade é manter um
estado do seu modelo
Máquinas de estado
Máquinas de estado
Principais diferenças
Os fluxos de trabalho podem estar em mais de um lugar ao mesmo
tempo, enquanto as máquinas de estado não podem;
Os fluxos de trabalho geralmente não têm caminhos cíclicos no
gráfico de definição, mas são comuns em máquinas de estado;
Para aplicar uma transição, os fluxos de trabalho exigem que o
objeto esteja em todos os locais anteriores da transição, enquanto
as máquinas de estado exigem apenas que o objeto esteja, pelo
menos, em um desses locais
Eventos
workflow.leave : quando nosso pedido sairá do estado atual,
workflow.transition : quando a transição para o novo estado é
iniciada,
workflow.enter : quando o novo estado é definido
workflow.guard : este permite evitar que a transição solicitada
ocorra, você pode fazer isso chamando o seguinte método: $event->
setBlocked (true) ;
https://symfony-workflow-demo.herokuapp.com
Vamos ver na prática
Contatos
camilafernandesdev@gmail.com
@kafernandesdev
Symfony
Telegram: https://t.me/SymfonyBrasil
Twiter: @SymfonyBrasil
Slides da palestra
Avaliação
Obrigada

Symfony workflow - Symfony Live Brasil 2019