-- Vincent de Lau <[EMAIL PROTECTED]> wrote
(on Tuesday, 02 September 2008, 03:25 PM -0700):
> For a custom bug/issue/task tracker I was thinking about how to manage
> workflow. After some thinking I came to the solution to create a custom
> workflow engines based on state machines. Below is a summary of what I'm
> thinking about:
>
> The main concepts are Object, State and Action. Objects have a State.
> Actions can change the State of an object. Rules determine which Actions are
> available for an Object in a certain state. Rules can also be subject
> to an ACL.
>
> The Statemanager is responsible for managing rules and state changes for a
> certain object. After initializing the Statemanager with the Object and
> Rules, an Action can be performed resulting in a state change.
>
> A more advanced version of the Statemanager could also dispatch Actions
> automatically. When there is only one possible Action and that Action
> doesn't require interaction, it could be performed. A similar concept might
> be a Trigger. Trigger are fired after a state change. Triggers don't have
> impact on the State of an Object.
>
> Further integration with the Zend Framework is possible. Actions that
> require user interaction should be able to communicate with Zend Controller.
> A special Workflow Controller could provide a kind of scaffolding access to
> the Statemanager. Another field of integration is on the Object side of
> things. Integration with models is almost a must. Integration with
> Zend_Db_Table, ActiveRecord and other automated model paterns would make
> sense.
>
> Does this sound a good plan to make a proposal? Anybody has a major issue to
> address before starting a proposal?
This may sound wierd coming from me, but have you looked at the ez
Components Workflow component?
http://ezcomponents.org/docs/tutorials/Workflow
The author of that, Sebastian Bergmann of PHPUnit fame, actually did his
thesis on workflow engines, and from what I've read and understood of
this component, it's quite good, and can be used standalone. You might
want to see if it suits your needs before writing your own; if it
doesn't, yes, by all means, create a proposal.
--
Matthew Weier O'Phinney
Software Architect | [EMAIL PROTECTED]
Zend Framework | http://framework.zend.com/