PHPackages                             vespolina/workflow - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. vespolina/workflow

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

vespolina/workflow
==================

Vespolina library for handling workflow

23675[1 issues](https://github.com/vespolina/workflow/issues)PHP

Since May 22Pushed 11y ago6 watchersCompare

[ Source](https://github.com/vespolina/workflow)[ Packagist](https://packagist.org/packages/vespolina/workflow)[ RSS](/packages/vespolina-workflow/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependenciesVersions (1)Used By (0)

workflow
========

[](#workflow)

[![Build Status](https://camo.githubusercontent.com/4a267a767e706ee3b7ff46cb95338e0c91db555008579e33a5b17c97d9dbcf3a/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f766573706f6c696e612f776f726b666c6f772e706e673f6272616e63683d6d6173746572)](http://travis-ci.org/vespolina/workflow)[![Total Downloads](https://camo.githubusercontent.com/b48a2de0a5134263f632bbc541695b959cf8c1d773d6720025d75960a5258e66/68747470733a2f2f706f7365722e707567782e6f72672f766573706f6c696e612f776f726b666c6f772f646f776e6c6f6164732e706e67)](https://packagist.org/packages/vespolina/workflow)[![Latest Stable Version](https://camo.githubusercontent.com/d5a6938f0d029001b76deb2e850c39bc904fe444239ca77fc36d755021d5df2e/68747470733a2f2f706f7365722e707567782e6f72672f766573706f6c696e612f776f726b666c6f772f762f737461626c652e706e67)](https://packagist.org/packages/vespolina/workflow)[![SensioLabsInsight](https://camo.githubusercontent.com/5dd6d5fe765c5a4d2462472424cff6f4d7bd6ea7352a5faa326deccc634b5669/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f36643931313730312d316263342d346364622d386431332d3831306334376136353937382f6d696e692e706e67)](https://insight.sensiolabs.com/projects/6d911701-1bc4-4cdb-8d13-810c47a65978)[![Scrutinizer Quality Score](https://camo.githubusercontent.com/9a05e12b83e1e1e7c94b25fbf83d2a409da7dbc00e0218000f3e20a56fddd689/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f636f72646f76616c2f776f726b666c6f772f6261646765732f7175616c6974792d73636f72652e706e673f733d36313533333235373263666161393839633864643031613864366366363061396432356437333134)](https://scrutinizer-ci.com/g/cordoval/workflow/)[![Code Coverage](https://camo.githubusercontent.com/b571f37baa639a85dbed30dfd5fa04711656a54978e57f83fe80e762e0a1eddb/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f636f72646f76616c2f776f726b666c6f772f6261646765732f636f7665726167652e706e673f733d34306632666665666539646139383561343732333939666465336534343464363065323435336164)](https://scrutinizer-ci.com/g/cordoval/workflow/)[![Dependency Status](https://camo.githubusercontent.com/d2876761f4983a4f9a90c20eabe60ca1cd120ef17553d8bc60ebfb181aaaa9b0/68747470733a2f2f7777772e76657273696f6e6579652e636f6d2f7068702f766573706f6c696e613a776f726b666c6f772f6465762d6d61737465722f62616467652e706e67)](https://www.versioneye.com/php/vespolina:workflow/dev-master)

Workflow is a library that lets you first build a graph with places and transactions interconnecting them with arcs. And then lets you traverse the created workflow for any number of runs each identifiable via a token. The traversing starts on an input place node and ends in an output place node for a given workflow. Workflow uses a logger to log the flow traversing details.

The tokenable nodes can execute custom implementations. These custom implementations can be used to carry out flows on processes of a web application or other process based systems.

Install
=======

[](#install)

```
composer require vespolina/workflow dev-master

```

Usage
=====

[](#usage)

Suppose we want a workflow like this:

```

  O -> [A] -> O -> [B] -> O
 in          p1          out

```

The code that implements and runs down on it would look like:

```
