PHPackages                             free-agent/workflow-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. free-agent/workflow-bundle

AbandonedArchivedSymfony-bundle[Framework](/categories/framework)

free-agent/workflow-bundle
==========================

Simple workflow bundle for Symfony2

21.3k2PHP

Since Jun 17Pushed 11y ago1 watchersCompare

[ Source](https://github.com/jeremyFreeAgent/FreeAgentWorkflowBundle)[ Packagist](https://packagist.org/packages/free-agent/workflow-bundle)[ RSS](/packages/free-agent-workflow-bundle/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependenciesVersions (1)Used By (0)

FreeAgentWorkflowBundle
=======================

[](#freeagentworkflowbundle)

[![Build Status](https://camo.githubusercontent.com/b5040b658f4c4a898c53af1401d2217f6def87fa77364f716a6e0af7fe7d3b55/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f6a6572656d79467265654167656e742f467265654167656e74576f726b666c6f7742756e646c652e706e67)](http://travis-ci.org/jeremyFreeAgent/FreeAgentWorkflowBundle)

Simple workflow bundle for Symfony2

What is it ?
------------

[](#what-is-it-)

### Workflow

[](#workflow)

A **Workflow** is a configuration that contains an array of *Step*. Foreach *Step* you must define :

- an array of **Action** to run task when the *Step* is reached
- an array of **Validation** to tell if the *Step* is reachable
- an array of possible next *Step*

### Action

[](#action)

An **Action** define what to do with the ***run()*** method.

### Validation

[](#validation)

An **Validation** define what to validate and return the result with the ***validate()*** method.

Set up
------

[](#set-up)

### Create your **Workflow** configuration

[](#create-your-workflow-configuration)

In your ***config.yml*** :

```
free_agent_workflow:
    workflows:
        example:
            default_step: draft
            validations:
                - free_agent_workflow.validation.pre_validation
                - free_agent_workflow.validation.pre_validation
            actions:
                - free_agent_workflow.action.post_action
                - free_agent_workflow.action.post_action
                - free_agent_workflow.action.post_action
            steps:
                draft:
                    label: Draft
                    actions:
                        - free_agent_workflow.action.example
                    validations:
                        - free_agent_workflow.validation.example
                        - free_agent_workflow.validation.example
                    possible_next_steps:
                        - removed
                        - validated
                removed:
                    label: Removed
                    actions:
                        - free_agent_workflow.action.example
                    validations:
                        - free_agent_workflow.validation.example
                        - free_agent_workflow.validation.example
                    possible_next_steps:
                        - draft
                validated:
                    label: Validated
                    actions:
                        - free_agent_workflow.action.example
                    validations:
                        - free_agent_workflow.validation.example
                    possible_next_steps:
                        - published
                        - removed
                        - draft
                published:
                    label: Published
                    actions:
                        - free_agent_workflow.action.example
                    validations:
                        - free_agent_workflow.validation.example
                        - free_agent_workflow.validation.example
                    possible_next_steps:
                        - unpublished
                        - removed
                        - draft
                unpublished:
                    label: Unpublished
                    actions:
                        - free_agent_workflow.action.example
                    validations:
                        - free_agent_workflow.validation.example
                        - free_agent_workflow.validation.example
                    possible_next_steps:
                        - published
                        - removed
                        - draft
        example_two:
            steps:
                draft:
                    label: Example
                    actions:
                        - free_agent_workflow.action.example
                    validations:
                        - free_agent_workflow.validation.example
                        - free_agent_workflow.validation.example
                    possible_next_steps:
                        - removed
```

### Actions &amp; Validations

[](#actions--validations)

You need also to set up your **Actions** and **Validations** services.

Usage
-----

[](#usage)

```
