PHPackages                             xaraya/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. xaraya/workflow

ActiveXaraya-module[Utility &amp; Helpers](/categories/utility)

xaraya/workflow
===============

Workflow Module based on the Galaxia Workflow Engine

2.9.5(5mo ago)01721GPL-2.0-or-laterPHP

Since Apr 14Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/xaraya-modules/workflow)[ Packagist](https://packagist.org/packages/xaraya/workflow)[ Docs](https://github.com/xaraya-modules/workflow)[ RSS](/packages/xaraya-workflow/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (35)Used By (1)

Overview with Symfony Workflow Component
----------------------------------------

[](#overview-with-symfony-workflow-component)

### What is it?

[](#what-is-it)

This is a modern **State Machine** approach using the Symfony Workflow component.

### Getting started

[](#getting-started)

1. Use *composer* to install the symfony/workflow package

```
$ composer require --dev symfony/workflow
$ composer update

```

2. Define the workflows in configuration

 See \[xardata/config.workflows.php\](xardata/config.workflows.php)

3. Use the workflows with modules or objects
4. Try out the user interface

#### Hook Sample

[](#hook-sample)

Use Workflow as **hook module** and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want

[![Hook Sample](xarimages/hook_sample.png)](xarimages/hook_sample.png)

#### Music CD Loans

[](#music-cd-loans)

Or add the new **Workflows property** to an existing object and let the value of its properties affect the workflow

[![Music CD Loans](xarimages/cd_loans.png)](xarimages/cd_loans.png)

### Further Information

[](#further-information)

1. [The Workflow Component](https://symfony.com/doc/current/components/workflow.html)
2. [Workflows and State Machines](https://symfony.com/doc/current/workflow/workflow-and-state-machine.html)
3. [Making Decisions with a Workflow](https://symfony.com/doc/current/the-fast-track/en/19-workflow.html)

Overview with Galaxia Workflow Engine
-------------------------------------

[](#overview-with-galaxia-workflow-engine)

### What is it?

[](#what-is-it-1)

See the [introduction](xardocs/concepts.htm) and [user manual](xardocs/manual.html) of Galaxia for more details on what this module is all about, and how to use it.

However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:

1. The definition part: processes and activities
2. The running part: instances and workitems

[![Workflow overview diagram](xarimages/whowhatwhenhow.gif)](xarimages/whowhatwhenhow.gif)

So, you *define* processes with activities and you *run* instances to complete workitems. During the use of the module you *Manage* processes and activities. There is functionality available to *monitor* all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.

### Getting started

[](#getting-started-1)

1. make sure that the webserver can write to the directory `var/processes` (chmod 777 or equivalent)
2. install [GraphViz](http://www.research.att.com/sw/tools/graphviz/)if you want to generate some nice process graphs, and adapt GRAPHVIZ\_DIR in `modules/workflow/lib/galaxia/config.php` if necessary;
3. go to the Dynamic Data [Import Object Definition](index.php?module=dynamicdata&type=util&func=import) page and paste the content of the file [cdcollection3\_dd.xml](xardata/cdcollection3_dd.xml)in the text area to create the sample database table;
4. go to [Admin Processes](index.php?module=workflow&type=admin&func=processes) and upload the file [cdcollection3.xml](xardata/cdcollection3.xml)to create a sample process;
5. map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles \[TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment\]
6. mark the process as *active* once you no longer have the errors "Role: ... is not mapped"
7. go to the [Workflow User Interface](index.php?module=workflow) and play around :-)
8. come back here and try some of the monitoring and administration options
9. create your own fancy processes and submit them back to the open source community

Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick &amp; dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.

With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :

1. upload the [review\_articles.xml](xardata/review_articles.xml)file to create the Review Articles process
2. assign some users to the 'editors' workflow role and mark the process as active
3. enable the workflow hooks for articles
4. configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
5. create a new article and have fun...

Version 1.3 adds the support for two BL tags : &lt;xar:workflow-activity activityId="123" ... /&gt; and &lt;xar:workflow-status ... /&gt;. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances \*you\* started. To try that out, you should :

1. delete your old "Music Loan 3" process, import the new version, assign users and mark as active
2. find out what the activityId of activity "Request CD" is, in that new process
3. in some template, add the following BL tags : &lt;xar:workflow-activity activityId="123"/&gt; (with 123 the activityId) and &lt;xar:workflow-status/&gt;
4. go to that page and enjoy...

Version 1.4 also adds the BL tag &lt;xar:workflow-instances .../&gt; to show the instances that are assigned/accessible to you (i.e. your task list).

**Patches and contributions are most welcome ;-)**

*Based on the [Galaxia Workflow Engine](http://tikiwiki.org/tiki-index.php?page=GalaxiaWorkflow)*

```
    // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
    // All Rights Reserved. See copyright.txt for details and a complete list of authors.
    // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.

```

### Further Information

[](#further-information-1)

Further information on the Workflow module can be found at

- Workflow Extension page at [Xaraya Extension and Releases](http://www.xaraya.com/index.php/release/188.html "Workflow Module - Xaraya Extension 188"). Click on Version History tab at the bottom to get the latest release information.
- Related tutorials and documentation on Workflow found at [Xaraya Documentation.](http://www.xaraya.com/index.php/keywords/workflow/ "Related documentation on Workflow")

\*\* Workflow Module Overview\*\*
 Version 1.0.0 2006-03-08

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance73

Regular maintenance activity

Popularity10

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~40 days

Recently: every ~4 days

Total

34

Last Release

151d ago

Major Versions

1.7.1 → 2.4.12023-01-17

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1447115?v=4)[Mike's Pub](/maintainers/mikespub)[@mikespub](https://github.com/mikespub)

---

Top Contributors

[![mikespub](https://avatars.githubusercontent.com/u/1447115?v=4)](https://github.com/mikespub "mikespub (184 commits)")[![mrvdb](https://avatars.githubusercontent.com/u/73067?v=4)](https://github.com/mrvdb "mrvdb (144 commits)")[![random777](https://avatars.githubusercontent.com/u/4590892?v=4)](https://github.com/random777 "random777 (54 commits)")

### Embed Badge

![Health badge](/badges/xaraya-workflow/health.svg)

```
[![Health](https://phpackages.com/badges/xaraya-workflow/health.svg)](https://phpackages.com/packages/xaraya-workflow)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[phpro/soap-client

A general purpose SoapClient library

8885.6M46](/packages/phpro-soap-client)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

728272.9k20](/packages/civicrm-civicrm-core)[symfony/ai-platform

PHP library for interacting with AI platform provider.

51927.7k136](/packages/symfony-ai-platform)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
