From d68cc99f23e97114e8dc2236f8d6fcc8003cdeca Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Fri, 23 Mar 2018 16:44:23 +0100 Subject: [PATCH 01/17] Documented the workflow metadata --- workflow/usage.rst | 142 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) diff --git a/workflow/usage.rst b/workflow/usage.rst index 57fc4eb79dc..8a12d0517d3 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -533,3 +533,145 @@ You can access the message from a Twig template as follows: Don't need a human-readable message? You can still use:: $event->setBlocked('true'); + +Storing Metadata +---------------- + +.. versionadded:: 4.1 + The feature to store metadata in workflows was introduced in Symfony 4.1. + +In case you need it, you can store arbitrary metadata in workflows, their +places, and their transitions using the ``metadata`` option. This metadata can +be as simple as the title of the workflow or as complex as your own application +requires: + +.. configuration-block:: + + .. code-block:: yaml + + # config/packages/workflow.yaml + framework: + workflows: + blog_publishing: + metadata: 'Blog Publishing Workflow' + # ... + places: + draft: + metadata: + max_num_of_words: 500 + # ... + transitions: + to_review: + from: draft + to: review + metadata: + priority: 0.5 + # ... + + .. code-block:: xml + + + + + + + + + Blog Publishing Workflow + + + + + + 500 + + + + + + draft + review + + 0.5 + + + + + + + + .. code-block:: php + + // config/packages/workflow.php + + $container->loadFromExtension('framework', array( + // ... + 'workflows' => array( + 'blog_publishing' => array( + 'metadata' => array( + 'title' => 'Blog Publishing Workflow', + ), + // ... + 'places' => array( + 'draft' => array( + 'max_num_of_words' => 500, + ), + // ... + ), + 'transitions' => array( + 'to_review' => array( + 'from' => 'draft', + 'to' => 'review', + 'metadata' => array( + 'priority' => 0.5, + ), + ), + ), + ), + ), + )); + +Then, you can access this metadata in your PHP code as follows:: + + // MISSING EXAMPLE HERE... + // + // + // + // + +In Twig templates, metadata is available via the ``workflow_metadata()`` function: + +.. code-block:: twig + +

Metadata

+

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

+

+ Current place(s) +

+

+

+ Enabled transition(s) +

+

From 17eae8c9dfeb67b8ea238ace52db9db617f2ad79 Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sat, 23 Mar 2019 09:52:31 +0000 Subject: [PATCH 02/17] Add missing metadata key, fixing comment by @noniagriconomie on https://github.com/symfony/symfony-docs/pull/9476 --- workflow/usage.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index 8a12d0517d3..05f2adfeec9 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -619,7 +619,9 @@ requires: // ... 'places' => array( 'draft' => array( - 'max_num_of_words' => 500, + 'metadata' => array( + 'max_num_of_words' => 500, + ), ), // ... ), From 663639be50fba2fa503d44bcf83e021e6eb04e0f Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sat, 23 Mar 2019 10:24:03 +0000 Subject: [PATCH 03/17] Incorporate the code examples in https://github.com/symfony/symfony-docs/pull/9476#discussion_r184728373 into the documentation --- workflow/usage.rst | 81 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 6 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index 05f2adfeec9..8adf1803e8b 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -638,13 +638,82 @@ requires: ), )); -Then, you can access this metadata in your PHP code as follows:: +Then, you can access this metadata in your PHP code as follows: + +In your Controller:: + + public function myControllerAction(Registry $registry, Article $article) + { + $workflow = $registry->get($article); + + // Or, if you don't inject the Workflow Registry, fetch from the Container: + $workflow = $this->get('workflow.article'); + + $workflow + ->getMetadataStore() + ->getWorkflowMetadata()['title'] ?? false + ; + + // or + $workflow + ->getMetadataStore() + ->getPlaceMetadata('draft')['title'] ?? false + ; + + // or + $aTransition = $workflow->getDefinition()->getTransitions()[0]; + $workflow + ->getMetadataStore() + ->getTransitionMetadata($aTransition)['title'] ?? false + ; + } + +There is a shortcut that works with everything:: + + $workflow + ->getMetadataStore() + ->getMetadata('title') + ; + +In a Flash message in your Controller:: + + // $transition = ...; (an instance of Transition) + $title = $this->get('workflow.article')->getMetadataStore()->getMetadata('title', $transition); + $request->getSession()->getFlashBag()->add('info', "You have successfully applied the transition with title: '$title'"); + +In a listener, access via the Event:: + + getMetadata('time_limit', $event->getTransition()); + + if (date('Hi') <= $timeLimit) { + return; + } + + $explanation = $event->getMetadata('explaination', $event->getTransition()); + $event->addTransitionBlocker(new TransitionBlocker($explanation , 0)); + } + + public static function getSubscribedEvents() + { + return [ + 'workflow.task.guard.done' => 'guardPublish', + ]; + } + } + - // MISSING EXAMPLE HERE... - // - // - // - // In Twig templates, metadata is available via the ``workflow_metadata()`` function: From c595c472074dd8e233cdb4271c4dabe013461bbb Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sat, 23 Mar 2019 12:06:59 +0000 Subject: [PATCH 04/17] First set of tidy-ups for @HeahDude's feedback. --- workflow/usage.rst | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index 8adf1803e8b..cfb3b5d3ab7 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -553,7 +553,8 @@ requires: framework: workflows: blog_publishing: - metadata: 'Blog Publishing Workflow' + metadata: + title: 'Blog Publishing Workflow' # ... places: draft: @@ -580,7 +581,7 @@ requires: > - + Blog Publishing Workflow @@ -646,9 +647,6 @@ In your Controller:: { $workflow = $registry->get($article); - // Or, if you don't inject the Workflow Registry, fetch from the Container: - $workflow = $this->get('workflow.article'); - $workflow ->getMetadataStore() ->getWorkflowMetadata()['title'] ?? false @@ -678,8 +676,9 @@ There is a shortcut that works with everything:: In a Flash message in your Controller:: // $transition = ...; (an instance of Transition) - $title = $this->get('workflow.article')->getMetadataStore()->getMetadata('title', $transition); - $request->getSession()->getFlashBag()->add('info', "You have successfully applied the transition with title: '$title'"); + // $workflow is a WorkFlow instance retrieved from the Registry (see above) + $title = $workflow->getMetadataStore()->getMetadata('title', $transition); + $this->addFlash('info', "You have successfully applied the transition with title: '$title'"); In a listener, access via the Event:: @@ -691,7 +690,7 @@ In a listener, access via the Event:: use Symfony\Component\Workflow\Event\GuardEvent; use Symfony\Component\Workflow\TransitionBlocker; - class DoneGuard implements EventSubscriberInterface + class OverdueGuard implements EventSubscriberInterface { public function guardPublish(GuardEvent $event) { @@ -717,7 +716,7 @@ In a listener, access via the Event:: In Twig templates, metadata is available via the ``workflow_metadata()`` function: -.. code-block:: twig +.. code-block:: html+twig

Metadata

From c9ef2622bc16a288e3b4a4ac81338543def00fa4 Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sat, 23 Mar 2019 13:34:46 +0000 Subject: [PATCH 05/17] Incorporate @OskarStark's feedback --- workflow/usage.rst | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index cfb3b5d3ab7..41210ab8f15 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -538,6 +538,7 @@ Storing Metadata ---------------- .. versionadded:: 4.1 + The feature to store metadata in workflows was introduced in Symfony 4.1. In case you need it, you can store arbitrary metadata in workflows, their @@ -639,9 +640,7 @@ requires: ), )); -Then, you can access this metadata in your PHP code as follows: - -In your Controller:: +Then you can access this metadata in your controller as follows:: public function myControllerAction(Registry $registry, Article $article) { @@ -676,14 +675,12 @@ There is a shortcut that works with everything:: In a Flash message in your Controller:: // $transition = ...; (an instance of Transition) - // $workflow is a WorkFlow instance retrieved from the Registry (see above) + // $workflow is a Workflow instance retrieved from the Registry (see above) $title = $workflow->getMetadataStore()->getMetadata('title', $transition); $this->addFlash('info', "You have successfully applied the transition with title: '$title'"); In a listener, access via the Event:: - Date: Sat, 23 Mar 2019 13:47:24 +0000 Subject: [PATCH 06/17] Document how to see all configuration options (see https://github.com/symfony/symfony-docs/pull/11209#discussion_r268392587) --- workflow/usage.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/workflow/usage.rst b/workflow/usage.rst index 41210ab8f15..b0865e78324 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -14,6 +14,15 @@ install the workflow feature before using it: $ composer require symfony/workflow +Configuration +------------- + +To see all configuration options, if you are using the component inside a Symfony project run this command: + +.. code-block:: terminal + + $ bin/console config:dump-reference framework workflows + Creating a Workflow ------------------- From af71c1427bc8bfe78f5fcf963f57f8641e30c564 Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sat, 23 Mar 2019 14:36:20 +0000 Subject: [PATCH 07/17] Add an introduction as suggested in https://github.com/symfony/symfony-docs/pull/11209#discussion_r268391900 When https://github.com/symfony/symfony-docs/issues/9465 is finished, link to details on Transition Blockers. --- workflow/usage.rst | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index b0865e78324..46b928160de 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -688,7 +688,15 @@ In a Flash message in your Controller:: $title = $workflow->getMetadataStore()->getMetadata('title', $transition); $this->addFlash('info', "You have successfully applied the transition with title: '$title'"); -In a listener, access via the Event:: +In a listener, access via the Event + +Metadata can also be accessed in a Listener, from the Event object. + +The example below uses a new feature introduced in 4.1 called Transition Blockers. These let you +return a user-friendly error message when you stop a transition from happening. In the example we +get this user-friendly message from the Event's metadata, giving you an easy place to manage the +text. This is a contrived example; in production systems you may prefer to use the +:doc:`Translation ` component to manage text:: namespace App\Listener\Workflow\Task; @@ -706,7 +714,7 @@ In a listener, access via the Event:: return; } - $explanation = $event->getMetadata('explaination', $event->getTransition()); + $explanation = $event->getMetadata('explanation', $event->getTransition()); $event->addTransitionBlocker(new TransitionBlocker($explanation , 0)); } From ea649921e5f70e8310d644f57fe6262d1840047a Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sat, 23 Mar 2019 15:31:47 +0000 Subject: [PATCH 08/17] Incorporate further excellent feedback from @HeahDude --- workflow/usage.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index 46b928160de..0dcc55b61b8 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -688,15 +688,13 @@ In a Flash message in your Controller:: $title = $workflow->getMetadataStore()->getMetadata('title', $transition); $this->addFlash('info', "You have successfully applied the transition with title: '$title'"); -In a listener, access via the Event - Metadata can also be accessed in a Listener, from the Event object. -The example below uses a new feature introduced in 4.1 called Transition Blockers. These let you +Using transition blockers you can return a user-friendly error message when you stop a transition from happening. In the example we -get this user-friendly message from the Event's metadata, giving you an easy place to manage the -text. This is a contrived example; in production systems you may prefer to use the -:doc:`Translation ` component to manage text:: +get this message from the :class:`Symfony\\Component\\Workflow\\Event\\Event`'s metadata, giving +you an easy place to manage the text. This is a contrived example; in production code you may +prefer to use the :doc:`Translation ` component to manage messages:: namespace App\Listener\Workflow\Task; @@ -726,7 +724,9 @@ text. This is a contrived example; in production systems you may prefer to use t } } +.. versionadded:: 4.1 + The transition blockers were added in version 4.1. In Twig templates, metadata is available via the ``workflow_metadata()`` function: From 40fbaf3c48c904453be898b2a70bbd930e87aa8d Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sat, 23 Mar 2019 15:36:03 +0000 Subject: [PATCH 09/17] Update arrays to use short syntax --- workflow/usage.rst | 55 +++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index 0dcc55b61b8..3fd766b6647 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -164,6 +164,7 @@ like this: ]); As configured, the following property is used by the marking store:: +.. code-block:: php class BlogPost { @@ -620,34 +621,34 @@ requires: // config/packages/workflow.php - $container->loadFromExtension('framework', array( +$container->loadFromExtension('framework', [ + // ... + 'workflows' => [ + 'blog_publishing' => [ + 'metadata' => [ + 'title' => 'Blog Publishing Workflow', + ], // ... - 'workflows' => array( - 'blog_publishing' => array( - 'metadata' => array( - 'title' => 'Blog Publishing Workflow', - ), - // ... - 'places' => array( - 'draft' => array( - 'metadata' => array( - 'max_num_of_words' => 500, - ), - ), - // ... - ), - 'transitions' => array( - 'to_review' => array( - 'from' => 'draft', - 'to' => 'review', - 'metadata' => array( - 'priority' => 0.5, - ), - ), - ), - ), - ), - )); + 'places' => [ + 'draft' => [ + 'metadata' => [ + 'max_num_of_words' => 500, + ], + ], + // ... + ], + 'transitions' => [ + 'to_review' => [ + 'from' => 'draft', + 'to' => 'review', + 'metadata' => [ + 'priority' => 0.5, + ], + ], + ], + ], + ], +]); Then you can access this metadata in your controller as follows:: From 94d17ded622899c04b94699376d63b893eebefcb Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Mon, 25 Mar 2019 17:08:06 +0000 Subject: [PATCH 10/17] Simplify the English and turn it into a tip --- workflow/usage.rst | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index 3fd766b6647..3e4a301de42 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -694,8 +694,12 @@ 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 an easy place to manage the text. This is a contrived example; in production code you may -prefer to use the :doc:`Translation ` component to manage messages:: +you an easy place to manage the text. + +.. tip:: + +This is a simple example; in production you may prefer to use the :doc:`Translation ` +component to manage messages in one place:: namespace App\Listener\Workflow\Task; From f716e81a181ca9f2648f13cfcf8c4dc0be828e04 Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Mon, 25 Mar 2019 19:10:51 +0000 Subject: [PATCH 11/17] Incorporate @OskarStark's feedback --- workflow/usage.rst | 52 +++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index 3e4a301de42..a2a1de8b74c 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -621,34 +621,34 @@ requires: // config/packages/workflow.php -$container->loadFromExtension('framework', [ - // ... - 'workflows' => [ - 'blog_publishing' => [ - 'metadata' => [ - 'title' => 'Blog Publishing Workflow', - ], + $container->loadFromExtension('framework', [ // ... - 'places' => [ - 'draft' => [ + 'workflows' => [ + 'blog_publishing' => [ 'metadata' => [ - 'max_num_of_words' => 500, + 'title' => 'Blog Publishing Workflow', ], - ], - // ... - ], - 'transitions' => [ - 'to_review' => [ - 'from' => 'draft', - 'to' => 'review', - 'metadata' => [ - 'priority' => 0.5, + // ... + 'places' => [ + 'draft' => [ + 'metadata' => [ + 'max_num_of_words' => 500, + ], + ], + // ... + ], + 'transitions' => [ + 'to_review' => [ + 'from' => 'draft', + 'to' => 'review', + 'metadata' => [ + 'priority' => 0.5, + ], + ], ], ], ], - ], - ], -]); + ]); Then you can access this metadata in your controller as follows:: @@ -694,12 +694,12 @@ 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 an easy place to manage the text. +you a central place to manage the text. .. tip:: -This is a simple example; in production you may prefer to use the :doc:`Translation ` -component to manage messages in one place:: + This is a simple example; in production you may prefer to use the :doc:`Translation ` + component to manage messages in one place:: namespace App\Listener\Workflow\Task; @@ -731,7 +731,7 @@ component to manage messages in one place:: .. versionadded:: 4.1 - The transition blockers were added in version 4.1. + The transition blockers were introduced in version 4.1. In Twig templates, metadata is available via the ``workflow_metadata()`` function: From 225c2fe757009a01407b9749ee784a4a62c6c5a4 Mon Sep 17 00:00:00 2001 From: Oskar Stark Date: Fri, 29 Mar 2019 21:12:57 +0000 Subject: [PATCH 12/17] Apply suggestions from code review Co-Authored-By: pbowyer --- workflow/usage.rst | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index a2a1de8b74c..c003c222dd5 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -583,12 +583,12 @@ requires: .. code-block:: xml - + @@ -684,10 +684,11 @@ There is a shortcut that works with everything:: In a Flash message in your Controller:: - // $transition = ...; (an instance of Transition) - // $workflow is a Workflow instance retrieved from the Registry (see above) - $title = $workflow->getMetadataStore()->getMetadata('title', $transition); - $this->addFlash('info', "You have successfully applied the transition with title: '$title'"); + // $transition = ...; (an instance of Transition) + + // $workflow is a Workflow instance retrieved from the Registry (see above) + $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. From 55c91998d6145bb8ac273a5498bd64dcc18ae3b2 Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Fri, 29 Mar 2019 21:16:44 +0000 Subject: [PATCH 13/17] Indent PHP block by an additional 4 spaces --- workflow/usage.rst | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index c003c222dd5..3532337de12 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -702,33 +702,33 @@ you a central place to manage the text. This is a simple example; in production you may prefer to use the :doc:`Translation ` component to manage messages in one place:: - namespace App\Listener\Workflow\Task; + namespace App\Listener\Workflow\Task; - use Symfony\Component\EventDispatcher\EventSubscriberInterface; - use Symfony\Component\Workflow\Event\GuardEvent; - use Symfony\Component\Workflow\TransitionBlocker; + 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) + class OverdueGuard implements EventSubscriberInterface { - $timeLimit = $event->getMetadata('time_limit', $event->getTransition()); + public function guardPublish(GuardEvent $event) + { + $timeLimit = $event->getMetadata('time_limit', $event->getTransition()); - if (date('Hi') <= $timeLimit) { - return; - } + if (date('Hi') <= $timeLimit) { + return; + } - $explanation = $event->getMetadata('explanation', $event->getTransition()); - $event->addTransitionBlocker(new TransitionBlocker($explanation , 0)); - } + $explanation = $event->getMetadata('explanation', $event->getTransition()); + $event->addTransitionBlocker(new TransitionBlocker($explanation , 0)); + } - public static function getSubscribedEvents() - { - return [ - 'workflow.task.guard.done' => 'guardPublish', - ]; + public static function getSubscribedEvents() + { + return [ + 'workflow.task.guard.done' => 'guardPublish', + ]; + } } - } .. versionadded:: 4.1 From 3765ddb198f7529359ecc3d8659e27ddf0684a9c Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Fri, 29 Mar 2019 21:19:13 +0000 Subject: [PATCH 14/17] Change code formatting of PHP snippet per https://github.com/symfony/symfony-docs/pull/11209/files/d57fa38d903175d58d9cfbf63f20e7ced8d2fd01#r268391655 --- workflow/usage.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index 3532337de12..7725d06f9e6 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -662,9 +662,8 @@ Then you can access this metadata in your controller as follows:: ; // or - $workflow - ->getMetadataStore() - ->getPlaceMetadata('draft')['title'] ?? false + $workflow->getMetadataStore() + ->getWorkflowMetadata()['title'] ?? false ; // or From 6080aa8edc7be1314e9af877463c2f06b13298d1 Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sun, 7 Apr 2019 10:06:32 +0100 Subject: [PATCH 15/17] Remove the word 'simple' --- workflow/usage.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index 7725d06f9e6..7290aad43b0 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -698,7 +698,7 @@ you a central place to manage the text. .. tip:: - This is a simple example; in production you may prefer to use the :doc:`Translation ` + 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; From a4c23c15b2b2b10ac6bb3fb80873243896d56d56 Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sun, 7 Apr 2019 11:03:55 +0100 Subject: [PATCH 16/17] Add blank line between code block and sentence above. Code block was not rendering. --- workflow/usage.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/workflow/usage.rst b/workflow/usage.rst index 7290aad43b0..b41c872a5e1 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -164,6 +164,7 @@ like this: ]); As configured, the following property is used by the marking store:: + .. code-block:: php class BlogPost From 7f3a0fd1cb05b7ccda150fb19e092f1ac1d38c77 Mon Sep 17 00:00:00 2001 From: Peter Bowyer Date: Sun, 7 Apr 2019 12:06:09 +0100 Subject: [PATCH 17/17] Oskar's feedback --- workflow/usage.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/workflow/usage.rst b/workflow/usage.rst index b41c872a5e1..532837fe4bd 100644 --- a/workflow/usage.rst +++ b/workflow/usage.rst @@ -165,8 +165,6 @@ like this: As configured, the following property is used by the marking store:: -.. code-block:: php - class BlogPost { // This property is used by the marking store @@ -732,7 +730,7 @@ you a central place to manage the text. .. versionadded:: 4.1 - The transition blockers were introduced in version 4.1. + The transition blockers were introduced in Symfony 4.1. In Twig templates, metadata is available via the ``workflow_metadata()`` function: pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy