Skip to end of metadata
Go to start of metadata
Under Construction
This proposal is under construction and is not ready for review.

Zend Framework: Zend_Flow Component Proposal

Proposed Component Name Zend_Flow
Developer Notes http://framework.zend.com/wiki/display/ZFDEV/Zend_Flow
Proposers Sebastien Ducret
Zend Liaison TBD
Revision 0.1 - 8 May 2009: Initial Draft.
0.2 - 10 August 2009. (wiki revision: 30)

Table of Contents

1. Overview

The purpose of this component is to provide more control over complex application flow.

2. References

3. Component Requirements, Constraints, and Acceptance Criteria

  • This component must provide separation between flow definition and flow execution
  • This component must be able to load flow definition from config object
  • This component must be capable of evaluating boolean expressions to decide what state to transition to next
  • This component should allow one flow to call another flow
  • This component should allow registering flow execution listener
  • This component must be able to persist flow execution
  • This component could provide support for Post-Redirect-Get pattern
  • This component could provide support for Continuation

4. Dependencies on Other Framework Components

  • Zend_Config (optional)
  • Zend_Exception
  • Zend_Session (optional)

5. Theory of Operation

The component is instantiated with a mind-link that ...

6. Milestones / Tasks

  • Milestone 1: Draft proposal submitted for community review
  • Milestone 2: Working prototype checked into the incubator for community evaluation
  • Milestone 3: ..

7. Class Index

  • Zend_Flow
  • Zend_Flow_State_Abstract
  • Zend_Flow_State_Action
  • Zend_Flow_Transition
  • Zend_Flow_Storage_Interface
  • Zend_Flow_Storage_Session

8. Use Cases

9. Class Skeletons

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Jul 20, 2009

    Is this proposal still alive/under development?

  2. Jul 30, 2009

    Currently I'm working on a simple Workflow engine that (will) support the basic flow-control patterns as described in:

    http://www.workflowpatterns.com/patterns/control/index.php
    http://is.tm.tue.nl/research/patterns/patterns.htm

    and I think it may fits the proposal.

    I started writing an initial draft a few days ago that seems to work with the Sequence pattern and made the code available on github http://github.com/trashofmasters/Workflow-Engine/tree/maste, it has a couple of Unit Test as well althought I'm no test-driven.

  3. Aug 12, 2009

    Hi Sébastien, according to your component requirements the Flow component must provide separate APIs for defining and executing the workflow, but by looking at the class skeleton for Zend_Flow the two interfaces are defined in the same class. Am I wrong?

    What about delegating the definition of the workflow to a separate object?
    For instance the ezComponents uses two different objects for specifying and executing the workflow, respectively ezcWorkflow*Definition and ezcWorkflow*Execution.

  4. Feb 05, 2011

    Archiving this proposal, feel free to recover it when you want to work on it again. For more details see this email.