The eZ Components development team is happy to announce the eZ Components 2008.1 release. Starting from this version, eZ Components requires PHP 5.2.1.
In this release, there are three new components:
The Document component enables you to convert documents between different formats.
The Feed component parses and generates RSS1, RSS2 and ATOM feeds.
The new Search component provides a unified interface to different search engine back-ends, quite similar to what the Database and PersistentObject components provide for database access.
The eZ Components 2008.1 release also comes with a new version of my workflow engine, Workflow 1.2. Here are the highlights of this update:
Version 1.2 of the Workflow component that is part of the eZ Components introduces a plugin system that allows developers to hook into the workflow engine at well-defined extension points.
For now, plugin code can be called
after an execution has been started
after an execution has been suspended
after an execution has been resumed
after an execution has been cancelled
after an execution has successfully ended
before a node is activated
after a node has been activated
after a node has been executed
after a service object has been rolled back
after a new thread has been started
after a thread has ended
before a variable is set
after a variable has been set
before a variable is unset
after a variable has been unset
ezcWorkflowExecutionListenerPlugin and ezcWorkflowExecutionVisualizerPlugin are two workflow execution engine plugins that will ship with Workflow 1.2. The former is a refactored version of the execution logging code of Workflow versions 1.0-1.1.
The latter is new and can be used to visually log the execution of a workflow as shown below.
The ezcWorkflowExecutionVisualizerPlugin generates a series of DOT files that can be rendered into single pictures using GraphViz. For the animation above, I crudely joined the single images to an animated GIF.
The before hooks are special as they allow the plugin to change (or even prevent) the current execution step. This will eventually allow for Aspect-Oriented Programming on the workflow level.
Version 1.2 of the Workflow component that is part of the eZ Components adds support for the Cancel Case workflow pattern:
Cancel Case
As soon as a node of the ezcWorkflowNodeCancel type is activated, the complete workflow instance is removed. This includes currently executing nodes, those which may execute at some future time and all parent and sub-workflows. The workflow instance is recorded as having completed unsuccessfully.
My diploma thesis paper has been updated accordingly to reflect the addition of the ezcWorkflowNodeCancel class.
A couple of days ago, Derick rolled and announced the 2007.2 release of the eZ Components, the enterprise ready general purpose PHP components library used independently or together for PHP application development.
The new version makes expressing loops easier (thanks to the new ezcWorkflowNodeLoop class), adds an else-like construct for exclusive choice nodes, and introduces the mapping of workflow variables for sub-workflows. The marshalling of the node configuration is now handled in the individual node classes. This makes it possible to have custom node classes handled by the XML definition storage.
The new version also features improved compatibility with the (outdated) PHP 5.1 release series.