Having used Code Igniter for some small projects at work, I recently decided to take the time to acquaint myself with the Zend Framework(ZF) so that I could build my own comparison between two of the most, in my opinion, developed and used PHP frameworks. While I love the flexibility and functionality offered by ZF, I have become very frustrated and annoyed with some of their documentation. Even though it is detailed and expansive, it is no where near complete and somewhat frustrating to use.

Zend_Form is a great example of this incomplete documentation. Conceptually, I think the Zend_Form is great. It offers very useful, and much needed functionality for creating and validating forms within pages and although it offers 4 pages of documentation and highlights many features, it barely touches upon one of its most useful features: the ability to create a form by passing the constructor a Zend_Config_Ini object. In its simplest form this amounts to the following:

$loginForm = new Zend_Form(new Zend_Config_Ini('/path/to/form/config', 'login'));

This will create a Zend_Form object by passing it a Zend_Config_Ini object.

Unfortunately, when you decide to build a custom form using Zend_Config, the documentation on how this actually works, is extremely sparse. There are three examples of using the Zend_Config, however, they are not commented and there is no explanation as to how it works, there is only a weak reference to PHP object oriented code from which to draw conclusions from. Maybe, I am too used to the Java API documentation.

Anyways, after a few days with ZF, it has become apparent to me, that ZF is a very well written, powerful, extensible, and versatile PHP framework. However, due to its incomplete documentation, I would argue that its’ learning curve is fairly high, much higher than Code Igniter’s. In time though, I am sure the ZF developers will realize this, and make the effort to provide better documentation. In the meantime though, I am going to continue to use ZF and hopefully, take it upon myself to provide some insight; a Zend_Form tutorial using Zend_Config is already in the works.