sfPageFlowPlugin, workflows complejos en Symfony

La actividad reciente de los plugins de Symfony es frenética: cada semana se publican varios plugins nuevos, se actualizan otros y casi todos son de una calidad sobresaliente. Si el desarrollo continua de esta manera, quizás sean los plugins el arma secreta de Symfony para derrotar a los demás frameworks.

Uno de los últimos plugins presentados es sfPageFlowPlugin, que permite definir de forma sencilla y ordenada los flujos de trabajo o workflows más complicados. Cuando una determinada acción se puede dividir en muchos pasos (inicialización, mostrar formulario, procesar formulario, notificar errores, mostrar confirmación, procesar petición, etc.) es recomendable diseñar un flujo de trabajo completo y ordenado que contenga todos los pasos necesarios y la relación entre estos pasos.

El siguiente gráfico muestra una representación visual de un workflow complejo:



Gracias a este plugin, se puede definir el workflow anterior mediante el siguiente archivo de configuración:

firstState: ProcessInitialize
lastState: DisplayResult
state:
DisplayForm:
transition:
doInput: ProcessValidate
DisplayConfirm:
transition:
doConfirm: ProcessSubmit
doCancel: ProcessSetup
DisplayResult:
ProcessInitialize:
transition:
onSuccess: ProcessSetup
ProcessSetup:
transition:
onSuccess: DisplayForm
...

Después se configuran las acciones de cada paso o estado del workflow:

public function executeInitialize(){
$this->flow->clearData();
$this->flow->transitOnSuccess();
return $this->flow->execute();
}

// handle ProcessSetup
public function executeSetup(){
$this->flow->transitOnSuccess();
return $this->flow->execute();
}

Sin duda se trata de una alternativa interesante para definir las acciones más complejas y aunque el plugin todavía se encuentra en beta, si evoluciona adecuadamente, podría parecerse cada vez más al BEA Weblogic Workshop:



Fuente: sfPageFlowプラグイン公開しました

Comentarios

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

4 de agosto de 2007

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.