Zeta Workflow

Why Zeta Workflow

The Zeta Components, also known as the EZ Components, are an interesting set of PHP packages intended to be “building blocks” used in solving various problems. They were written so long ago that they may well be obsolete. With the Workflow package in particular, I see no indication of support or usage within the last five years.

However, the Zeta Components Workflow package with its Database Tie-In package seems to be what we need for ongoing development at the Star Tribune. All Zeta Components are open source PHP. The code is maintained to the extent that it has been placed on GitHub and is available from Packagist through Composer.

We use Laravel 4 as our PHP framework. This project integrates Zeta Workflow as a Laravel package. We intend to contribute both our Zeta Components changes and this Laravel package to the open source community.

Why WordPress-Based Documentation

What you’re reading right now is my documentation of the project, as opposed to documenting the package code. This narrative includes some speculation and suggestion as to how we might best use the Zeta Workflow for our purpose.

Why WordPress rather than standard docblocks and docbooks in the code, or with the code? Because a lot of this consists of code walkthroughs. The walkthroughs are far more clear by showing code samples this way, with syntax highlighted.

My Narrative Documentation

My documentation begins from the standpoint of, “Now that we have an interface from Laravel to Zeta Components Workflow, how might we best use it?” It then continues as a walkthrough of both the interface code and the unit tests verifying Zeta Components Workflow behavior.

Here are the posts related to the modified Zeta Components Workflow package.

The Laravel Package Components

The various components are documented via PHPDocumentor. Begin with the package top level directory phpdoc/index.html.

There is also a top-level directory PUT_IN_PROJECT_ROOT which contains:

  • Makefile. When there are a large number of Laravel/PHPUnit tests which connect to the database, the unit test runner blows up. This less-than-simple Makefile is less than simple because we split the unit tests into suites which run separately so as to not blow up. The Makefile also generates the phpdoc/ documentation.
  • composer.json. Load the dependencies needed for package development.
  • phpunit.xml. This contains the PHPUnit settings I use, and partitions the tests into suites which are referenced by the Makefile.

Ongoing Development

As I continue developing the Laravel Workflow package, I intend to lay out my train of thought as I go. Here are the posts.

That’s it!