Today, I have released two versions of Cgiapp into the wild, Cgiapp 1.8.0
and Cgiapp2 2.0.0rc1.
Cgiapp 1.8.0 is a performance release. I did a complete code audit of the
class, and did a number of changes to improve performance and fix some
previously erratic behaviours. Additionally, I tested under both PHP4 and
PHP5 to make sure that behaviour is the same in both environments.
However, Cgiapp 1.8.0 markes the last feature release of Cgiapp. I am
deprecating the branch in favor of Cgiapp2.
Cgiapp2 is a PHP5-only version of Cgiapp. Some of the changes:
- Cgiapp2 is an abstract class, with the abstract method setup(). Now it
is truly non-instantiable!
- Cgiapp2 makes extensive use of visibility operators. Key methods have
been marked final, some methods are now protected, others static. See the changelog for more information.
- Cgiapp2 is now E_STRICT compliant.
- Cgiapp2 implements the CGI::Application 4.x series callback hook system.
This is basically an observer pattern, allowing developers to register
callbacks that execute at different locations in the runtime.
- Cgiapp2 adds some extensive error and exception handling classes,
including observable errors and exceptions.
- I created a template interface. If implemented, a template engine can be
plugged into the architecture at will -- at the superclass, application
class, and instance script level, allowing developers to mix-and-match
template engines or choose whichever matches their taste, without
having to rewrite application code. Three template plugins are included:
Cgiapp and Cgiapp2 are available at
Sourceforge.
Keep reading for more information on the evolution of Cgiapp2.