Skip to content

The WorkflowReviser integrates simple transition conditions into the Symfony Workflow component. This means easy-to-implement and feature-rich transition checks in your Symfony application!

License

Notifications You must be signed in to change notification settings

chunkwan/workflow-reviser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Workflow Reviser

The WorkflowReviser integrates simple transition conditions into the Symfony Workflow component. This means easy-to-implement and feature-rich transition checks in your Symfony application!

Example:

// config/packages/workflow.php
// Reknil\WorkflowReviser\Component\TransitionRule\CountEqual;
// Reknil\WorkflowReviser\Component\TransitionRule\NotNull;
// Reknil\WorkflowReviser\Component\WorkflowReviser;

$container->loadFromExtension('framework', [
    // ...
    'workflows' => [
        'blog_publishing' => [
            'supports' => [BlogPost::class],
            // ...
            'places' => [
                'draft',
                'reviewed',
                'rejected',
                'published',
            ],
            'transitions' => [
                'to_review' => [
                    'from' => 'draft',
                    'to' => 'review',
                    'metadata' => [
                        # The transition is allowed only if the all check is success:
                        # Title and Short Description is filled - NotNull
                        # Quantity of images for post equal two - CountEqual
                        # Comments for post more then 5 - CountMore
                        WorkflowReviser::class => [
                            NotNull::class => [
                                // you can pass one or more property (field) of entity class
                                'title' => "Title cannot be blank",
                                'shortDescription' => "Short Description must be filled",
                            ],
                            CountEqual::class => [
                                'images' => [2, ' Quantity of images for post must be two'],
                            ],
                            CountMore::class => [
                                'comments' => [5, ' Comments for post must be more then 5'],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
        ],
    ],
]);

TransitionRule List:

DateTime:

// ...
DateTimeEqual::class => [
    'createdAt' => [new \DateTime('2020-12-15T15:03:00'), 'Datetime must be equal!'],
],
DateTimeUntil::class => [
    'createdAt' => [new \DateTime('2020-12-15T15:03:00'), 'Datetime must be untill!'],
],
DateTimeBefore::class => [
    'createdAt' => [new \DateTime('2020-12-15T15:03:00'), 'Datetime must be before!'],
],
// ...

About

The WorkflowReviser integrates simple transition conditions into the Symfony Workflow component. This means easy-to-implement and feature-rich transition checks in your Symfony application!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages