Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Le reveil du Workflow

Le reveil du Workflow

Il est courant de gérer des statuts ou états de produits, dans des sites e-commerce ou éditoriaux. Pour ce faire, il est possible d'agir de façon classique, c'est-à-dire manuellement, ou d'avoir recours à des librairies qui proposent déjà des bases de code.

Pour cette présentation, nous aborderons la notion de machine à état et sa définition avant d'envisager, son application, en examinant les librairies open sources existantes. Enfin, à la lumière de Symfony, nous étudierons le nouveau composant "Workflow"

Grégoire Pineau

April 07, 2016
Tweet

More Decks by Grégoire Pineau

Other Decks in Technology

Transcript

  1. blackfire.io Contexte 20 Sur un site de presse, il y

    a beaucoup d’ acteurs différents. Des pigistes, des journalistes, un rédacteur en chef, des correcteurs, un directeur de publication, … Un article n’est pas publié aussi facilement.
  2. blackfire.io Il y a des règles Par exemple, un article

    doit être validé par un journaliste et par un correcteur. Si c’est le cas, alors l’article peut être mis en ligne. 21
  3. blackfire.io Hello workflow ! Le composant a pour but de

    garantir que l’ article passe bien par toutes les étapes de validations. 22
  4. blackfire.io On définit ce qu’on veut 28 • Pouvoir gérer

    la publication d’un article • Il y a une série d’étapes qui doivent être respectées • Seuls certains utilisateurs peuvent franchir certaines étapes • Certaines étapes peuvent être faites en parallèle
  5. blackfire.io Petit état de l’art 33 • State machine: ◦

    https://github.com/yohang/Finite ◦ https://github.com/winzou/state-machine • Petrinet ◦ https://github.com/florianv/petrinet ◦ https://github.com/alterway/component-workflow • Autre ◦ https://github.com/vespolina/workflow
  6. blackfire.io Workflow Net 36 • C’est une extension des réseaux

    de Petri • Ça ressemble aux machines à états • Mais avec plus de features Note: le composant Workflow de Symfony n'implémente pas toutes les spécifications.
  7. blackfire.io Les events On a mis l’Event Dispatcher dans le

    Workflow ! Un event à chaque: • sortie de place • passage dans une transition • arrivée dans une place 62
  8. blackfire.io La définition - A la main Il est toujours

    fortement recommandé de faire son workflow sur papier pour essayer de le valider avant. 65