From d6b8d18d04459b441d3a39a961bdf77e9bea29d5 Mon Sep 17 00:00:00 2001 From: Antoine M Date: Thu, 16 May 2019 09:19:31 +0200 Subject: [PATCH] Workflow doc --- _images/components/workflow/pull_request.png | Bin 43944 -> 44125 bytes components/workflow.rst | 7 +- workflow.rst | 169 ++++++++++++------- workflow/dumping-workflows.rst | 18 +- workflow/introduction.rst | 36 ++-- 5 files changed, 138 insertions(+), 92 deletions(-) diff --git a/_images/components/workflow/pull_request.png b/_images/components/workflow/pull_request.png index 1aa8886728c3910d7bed8728453a321f7944cb89..692a95345aeb32988151c968b879f43d85b728c3 100644 GIT binary patch literal 44125 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

Av~}&;WDVn#l{ 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 literal 43944 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 diff --git a/components/workflow.rst b/components/workflow.rst index bfa441f3827..3d3ac24cc2c 100644 --- a/components/workflow.rst +++ b/components/workflow.rst @@ -76,16 +76,19 @@ are trying to use it with:: Usage ----- -When you have configured a ``Registry`` with your workflows, you may use it as follows:: +When you have configured a ``Registry`` with your workflows, +you can retreive a workflow from it and use it as follows:: // ... + // Consider that $post is in state "draft" by default $post = new BlogPost(); $workflow = $registry->get($post); $workflow->can($post, 'publish'); // False $workflow->can($post, 'to_review'); // True - $workflow->apply($post, 'to_review'); + $workflow->apply($post, 'to_review'); // $post is now in state "review" + $workflow->can($post, 'publish'); // True $workflow->getEnabledTransitions($post); // ['publish', 'reject'] diff --git a/workflow.rst b/workflow.rst index 493388249da..5624f0785a0 100644 --- a/workflow.rst +++ b/workflow.rst @@ -197,7 +197,10 @@ As configured, the following property is used by the marking store:: With this workflow named ``blog_publishing``, you can get help to decide what actions are allowed on a blog post:: - $post = new App\Entity\BlogPost(); + use Symfony\Component\Workflow\Exception\LogicException; + use App\Entity\BlogPost; + + $post = BlogPost(); $workflow = $this->container->get('workflow.blog_publishing'); $workflow->can($post, 'publish'); // False @@ -401,6 +404,9 @@ This means that each event has access to the following information: :method:`Symfony\\Component\\Workflow\\Event\\Event::getWorkflowName` Returns a string with the name of the workflow that triggered the event. +:method:`Symfony\\Component\\Workflow\\Event\\Event::getMetadata` + Returns a metadata. + For Guard Events, there is an extended class :class:`Symfony\\Component\\Workflow\\Event\\GuardEvent`. This class has two more methods: @@ -410,6 +416,13 @@ This class has two more methods: :method:`Symfony\\Component\\Workflow\\Event\\GuardEvent::setBlocked` Sets the blocked value. +:method:`Symfony\\Component\\Workflow\\Event\\GuardEvent::getTransitionBlockerList` + Returns the event :class:`Symfony\\Component\\Workflow\\TransitionBlockerList`. + See :ref:`blocking transitions `. + +:method:`Symfony\\Component\\Workflow\\Event\\GuardEvent::addTransitionBlocker` + Add a :class:`Symfony\\Component\\Workflow\\TransitionBlocker` instance. + .. _workflow-blocking-transitions: Blocking Transitions @@ -438,16 +451,61 @@ transition. The value of this option is any valid expression created with the from: draft to: reviewed publish: - # or "is_anonymous", "is_remember_me", "is_fully_authenticated", "is_granted" + # or "is_anonymous", "is_remember_me", "is_fully_authenticated", "is_granted", "is_valid" guard: "is_authenticated" from: reviewed to: published reject: - # or any valid expression language with "subject" referring to the post - guard: "has_role('ROLE_ADMIN') and subject.isStatusReviewed()" + # or any valid expression language with "subject" referring to the supported object + guard: "has_role('ROLE_ADMIN') and subject.isRejectable()" from: reviewed to: rejected +You can also use transition blockers to block and return a user-friendly error +message when you stop a transition from happening. +In the example we get this message from the +:class:`Symfony\\Component\\Workflow\\Event\\Event`'s metadata, giving you a +central place to manage the text. + +This example has been simplified; in production you may prefer to use the +:doc:`Translation ` component to manage messages in one +place:: + + namespace App\Listener\Workflow\Task; + + use Symfony\Component\EventDispatcher\EventSubscriberInterface; + use Symfony\Component\Workflow\Event\GuardEvent; + use Symfony\Component\Workflow\TransitionBlocker; + + class BlogPostPublishListener implements EventSubscriberInterface + { + public function guardPublish(GuardEvent $event) + { + $eventTransition = $event->getTransition(); + $hourLimit = $event->getMetadata('hour_limit', $eventTransition); + + if (date('H') <= $hourLimit) { + return; + } + + // Block the transition "publish" if it is more than 8 PM + // with the message for end user + $explanation = $event->getMetadata('explanation', $eventTransition); + $event->addTransitionBlocker(new TransitionBlocker($explanation , 0)); + } + + public static function getSubscribedEvents() + { + return [ + 'workflow.blog_publishing.guard.publish' => ['guardPublish'], + ]; + } + } + +.. versionadded:: 4.1 + + The transition blockers were introduced in Symfony 4.1. + Usage in Twig ------------- @@ -470,15 +528,15 @@ The following example shows these functions in action: .. code-block:: html+twig -

Actions

+

Actions on Blog Post

{% if workflow_can(post, 'publish') %} -
Publish article + Publish {% endif %} {% if workflow_can(post, 'to_review') %} Submit to review {% endif %} {% if workflow_can(post, 'reject') %} - Reject article + Reject {% endif %} {# Or loop through the enabled transitions #} @@ -494,8 +552,8 @@ The following example shows these functions in action: {% endif %} {# Check if some place has been marked on the object #} - {% if 'waiting_some_approval' in workflow_marked_places(post) %} - PENDING + {% if 'reviewed' in workflow_marked_places(post) %} + Reviewed {% endif %} Storing Metadata @@ -532,7 +590,12 @@ requires: to: review metadata: priority: 0.5 - # ... + publish: + from: reviewed + to: published + metadata: + hour_limit: 20 + explanation: 'You can not publish after 8 PM.' .. code-block:: xml @@ -563,7 +626,14 @@ requires: 0.5 - + + reviewed + published + + 20 + You can not publish after 8 PM. + + @@ -595,6 +665,14 @@ requires: 'priority' => 0.5, ], ], + 'publish' => [ + 'from' => 'reviewed', + 'to' => 'published', + 'metadata' => [ + 'hour_limit' => 20, + 'explanation' => 'You can not publish after 8 PM.', + ], + ], ], ], ], @@ -603,27 +681,29 @@ requires: Then you can access this metadata in your controller as follows:: use Symfony\Component\Workflow\Registry; + use App\Entity\BlogPost; - public function myController(Registry $registry, Article $article) + public function myController(Registry $registry, BlogPost $post) { - $workflow = $registry->get($article); + $workflow = $registry->get($post); $title = $workflow ->getMetadataStore() - ->getWorkflowMetadata()['title'] ?? false + ->getWorkflowMetadata()['title'] ?? 'Default title' ; // or $aTransition = $workflow->getDefinition()->getTransitions()[0]; $transitionTitle = $workflow ->getMetadataStore() - ->getTransitionMetadata($aTransition)['title'] ?? false + ->getTransitionMetadata($aTransition)['priority'] ?? 0 ; } -There is a shortcut that works with everything:: +There is a shortcut that works with every metadata level:: $title = $workflow->getMetadataStore()->getMetadata('title'); + $priority = $workflow->getMetadataStore()->getMetadata('priority'); In a :ref:`flash message ` in your controller:: @@ -633,65 +713,24 @@ In a :ref:`flash message ` in your controller:: $title = $workflow->getMetadataStore()->getMetadata('title', $transition); $this->addFlash('info', "You have successfully applied the transition with title: '$title'"); -Metadata can also be accessed in a Listener, from the Event object. - -Using transition blockers you can return a user-friendly error message when you -stop a transition from happening. In the example we get this message from the -:class:`Symfony\\Component\\Workflow\\Event\\Event`'s metadata, giving you a -central place to manage the text. - -This example has been simplified; in production you may prefer to use the -:doc:`Translation ` component to manage messages in one -place:: - - namespace App\Listener\Workflow\Task; - - use Symfony\Component\EventDispatcher\EventSubscriberInterface; - use Symfony\Component\Workflow\Event\GuardEvent; - use Symfony\Component\Workflow\TransitionBlocker; - - class OverdueGuard implements EventSubscriberInterface - { - public function guardPublish(GuardEvent $event) - { - $timeLimit = $event->getMetadata('time_limit', $event->getTransition()); - - if (date('Hi') <= $timeLimit) { - return; - } - - $explanation = $event->getMetadata('explanation', $event->getTransition()); - $event->addTransitionBlocker(new TransitionBlocker($explanation , 0)); - } - - public static function getSubscribedEvents() - { - return [ - 'workflow.task.guard.done' => 'guardPublish', - ]; - } - } - -.. versionadded:: 4.1 - - The transition blockers were introduced in Symfony 4.1. +Metadata can also be accessed in a Listener, from the :class:`Symfony\\Component\\Workflow\\Event\\Event` object. In Twig templates, metadata is available via the ``workflow_metadata()`` function: .. code-block:: html+twig -

Metadata

+

Metadata of Blog Post

- Workflow:
- {{ workflow_metadata(article, 'title') }} + Workflow:
+ {{ workflow_metadata(blog_post, 'title') }}

Current place(s)

    - {% for place in workflow_marked_places(article) %} + {% for place in workflow_marked_places(blog_post) %}
  • {{ place }}: - {{ workflow_metadata(article, 'max_num_of_words', place) ?: 'Unlimited'}} + {{ workflow_metadata(blog_post, 'max_num_of_words', place) ?: 'Unlimited'}}
  • {% endfor %}
@@ -699,10 +738,10 @@ In Twig templates, metadata is available via the ``workflow_metadata()`` functio

Enabled transition(s)

    - {% for transition in workflow_transitions(article) %} + {% for transition in workflow_transitions(blog_post) %}
  • {{ transition.name }}: - {{ workflow_metadata(article, 'priority', transition) ?: '0' }} + {{ workflow_metadata(blog_post, 'priority', transition) ?: '0' }}
  • {% endfor %}
diff --git a/workflow/dumping-workflows.rst b/workflow/dumping-workflows.rst index fa4e295eb66..aa1b78d6867 100644 --- a/workflow/dumping-workflows.rst +++ b/workflow/dumping-workflows.rst @@ -5,8 +5,8 @@ How to Dump Workflows ===================== To help you debug your workflows, you can dump a representation of your workflow -or state machine with the use of a ``DumperInterface``. Symfony provides 2 -different dumpers both based on Dot. +or state machine with the use of a ``DumperInterface``. Symfony provides two +different dumpers, both based on Dot (see below). Use the ``GraphvizDumper`` or ``StateMachineGraphvizDumper`` to create DOT files, or use ``PlantUmlDumper`` for PlantUML files. Both types can be converted @@ -24,17 +24,20 @@ Images of the workflow defined above:: .. code-block:: terminal + # dump DOT file in PNG image: $ php dump-graph-dot.php | dot -Tpng -o dot_graph.png - $ php dump-graph-puml.php | java -jar plantuml.jar -p > puml_graph.png - # run this command if you prefer SVG images: + # dump DOT file in SVG image: # $ php dump-graph-dot.php | dot -Tsvg -o dot_graph.svg + # dump PlantUML in PNG image: + $ php dump-graph-puml.php | java -jar plantuml.jar -p > puml_graph.png + The DOT result will look like this: .. image:: /_images/components/workflow/blogpost.png -The PUML result: +The PlantUML result: .. image:: /_images/components/workflow/blogpost_puml.png @@ -43,8 +46,9 @@ Inside a Symfony application, you can dump the files with those commands using .. code-block:: terminal - $ php bin/console workflow:dump name | dot -Tsvg -o graph.svg - $ php bin/console workflow:dump name --dump-format=puml | java -jar plantuml.jar -p > workflow.png + $ php bin/console workflow:dump workflow_name | dot -Tpng -o workflow_name.png + $ php bin/console workflow:dump workflow_name | dot -Tsvg -o workflow_name.svg + $ php bin/console workflow:dump workflow_name --dump-format=puml | java -jar plantuml.jar -p > workflow_name.png .. note:: diff --git a/workflow/introduction.rst b/workflow/introduction.rst index 38a148c5fd3..b5046da83e0 100644 --- a/workflow/introduction.rst +++ b/workflow/introduction.rst @@ -58,11 +58,11 @@ your model. The most important differences between them are: Example ~~~~~~~ -A pull request starts in an initial "start" state, a state for e.g. running -tests on Travis. When this is finished, the pull request is in the "review" +A pull request starts in an initial "start" state, then a state "test" for e.g. running +tests on continuous integration stack. When this is finished, the pull request is in the "review" state, where contributors can require changes, reject or accept the pull request. At any time, you can also "update" the pull request, which -will result in another Travis run. +will result in another continuous integration run. .. image:: /_images/components/workflow/pull_request.png @@ -83,19 +83,19 @@ Below is the configuration for the pull request state machine. places: - start - coding - - travis + - test - review - merged - closed transitions: submit: from: start - to: travis + to: test update: - from: [coding, travis, review] - to: travis + from: [coding, test, review] + to: test wait_for_review: - from: travis + from: test to: review request_change: from: review @@ -129,7 +129,7 @@ Below is the configuration for the pull request state machine. start coding - travis + test review merged closed @@ -137,19 +137,19 @@ Below is the configuration for the pull request state machine. start - travis + test coding - travis + test review - travis + test - travis + test review @@ -195,7 +195,7 @@ Below is the configuration for the pull request state machine. 'places' => [ 'start', 'coding', - 'travis', + 'test', 'review', 'merged', 'closed', @@ -203,14 +203,14 @@ Below is the configuration for the pull request state machine. 'transitions' => [ 'submit'=> [ 'from' => 'start', - 'to' => 'travis', + 'to' => 'test', ], 'update'=> [ - 'from' => ['coding','travis','review'], - 'to' => 'travis', + 'from' => ['coding', 'test', 'review'], + 'to' => 'test', ], 'wait_for_review'=> [ - 'from' => 'travis', + 'from' => 'test', 'to' => 'review', ], 'request_change'=> [