So here I am writing another PHP framework post. Fortunately I think I have covered a lot of ground with previous trials (the previous framework posts were based on production level websites) and I am just about ready to call it day. From day one when looking at frameworks I had my eye on the Zend framework. The biggest things against it was that it was not production ready and that wasn’t acceptable for production level websites. In August 2007 the framework went to version 1 and I have only gotten the chance to get down and dirty with the framework.
I am only just getting fully into the framework so this is not a comprehensive pros and cons just what I have come up with so far.
Pros:
- Developed by the creators of PHP (Zend). That in itself I think is a big deal especially when it comes to selling the idea of a framework to in house developers as well as to the stake holders
- Loosely coupled and easy to customize. The components of the framework can be used independently of the framework (I have used Zend components with Code Igniter). The customizable part is extremely helpful when introducing the framework to a team. If there are cool things that your team wants to retro-fit that shouldn’t be a problem
- When you get into the framework you realize that it benefited from careful planning. The framework is feature rich, well documented and the level of extensibility could only be achieved with careful planning (there are even PHPUnit test cases that can be very helpful for those of us who like to make customizations.
Cons:
- The framework requires PHP 5 .1 and greater. This will rule it out for projects that are to be hosted on servers that may be running PHP 4 (PHP 4 is no longer supported).
- Some of the things that come out of box with other frameworks isn’t present in Zend Framework. There are I think a lot of gluing together of pieces involved and that may require a little my time spent reading documentation etc etc (e.g. you have to write your own bootstrap where as other frameworks I have used give you a bootstrap in the form of a index.php).
Thats all I got for major pros and cons at this point but I may make additions once I have a project completed with the framework. Before I can make Zend Framework my framework of choice I have to add my own flare that will incorporate the best of previous frameworks I have tried as well as other libs that I find useful in my regular development. To that end a list of things that I are going to be equipping my basic build with are:
- CakePHP style view rendering. I really like the whole layout/view/element scheme that CakePHP uses. I was able to find a lib that did something similar for Code Igniter but had to roll my own library for Zend framework. Next Post I will be including the details of that custom library.
- AMFPHP for flash remoting. While I have been doing a lot of backend recently I still do flash and AMFPHP is still the way to go for backend to front end in my eyes (I am so excited about BlazeDS and hoping for some things to be ported to AMFPHP). I had somewhat of a hard time blending it with Code Igniter and so far putting it in Zend has been equally as challenging (and what I have so far requires a lot of icky hacks). When I get it to a point where I can consolidate as much hacks as possible and its been tested I will have a post on that
- Scaffolding CakePHP style. This is another neat feature from CakePHP I would like to replicate. While I have found that I dont really use it so much, I can see its usefulness when working with a team.
- Profiling tool. This is a nice to have. It would be a widget that you can append to your views that would have a lot of useful information about the view that was rendered. This isn’t some new idea (the company I work for had one built to aid development for a project) but unfortunately there are non available (as far as I can tell) out in the wild and I may have to develop it myself so that I can share with others.
Looking forward to banging out some good stuff with this bad boy and hopefully my future posts will exhibit the same enthusiasm





Baz L
January 7th, 2008
I vote the best of both worlds. CakePHP and include the Zend Framework with it.
Can’t go wrong.
Dawid Lorenz
January 10th, 2008
I’m just about to start up a new PHP project, and I was recently looking for a PHP framework to do that. At the moment I’m thinking of Zend or CodeIgniter. I like Zend’s powerfulness and the fact is takes advantages of PHP5, but on the other hand CI’s simplicity, excellent documentation and basic templating engine (which I personally prefer over more complex engines like Smarty) are also tempting… Hard choice, really.
I’m going to subscribe RSS feed, as I’m looking forward to read post regarding your custom view/template library for Zend which you’ve mentioned.
Wil Sinclair
January 14th, 2008
Well, I have to admit I’m a bit biased.
- by outlining the philosophy behind ZF’s decisions so far. We like- and have taken a lot of inspiration from- many of the other frameworks out there, PHP or otherwise. We believe, however, that many frameworks oversimplify production environments for a very large and significant set of projects. In particular, enterprise applications tend to have many requirements for integration with other systems, and- while we’re down with opinionated software- we don’t see an opinionated framework as the best way of addressing these needs. Therefore, we basically design with the guiding principle of “Make everything as simple as possible, but not simpler.” I’m pretty sure Einstein didn’t have web frameworks in mind when he said this, but it’s as good a representation of our thinking as any other. 
way. Basically we’re building up towards simplicity, instead of starting with the simplest use case and working down. Not that that approach is somehow flawed- we just think that our approach is the best way for us to ensure that every layer is as useful and extensible as possible before moving to the next abstraction layer. I think you’ll see these features released over the course of 2008, and I hope you’ll see why we’ve spent a little more time thinking about them. I suppose this is one of the luxuries that we enjoy from Zend’s sponsorship; we’re in this for the long haul and if it takes a few years to create the best framework out there, we’re willing and able to make that investment.
Have you taken a look at the list of features for 1.5? We’re on schedule to deliver 1.5 in Q1 with support for layouts, forms, LDAP, OpenID, command line tools, and a bunch of other goodies.
Hopefully I can address a few of your concerns- and reaffirm your good impressions
As far as ZF’s missing this or that component- it’s obvious that some of these features would be useful and have been well implemented in other frameworks. We’ve been very careful *not* to race to achieve feature parity with other frameworks, however, because we think that some of these functional areas could be implemented in a more powerful, flexible, ZF-ish
Now, as for php 4 support. . . sorry, can’t help you out there. There are no plans to port ZF to PHP4; we’d rather win people over with the huge benefits PHP5 and OOP.
In any case, good luck with whichever framework you choose. If you do choose ZF, come on over and drop us a note on the mailing list.
Best.
,Wil
Developer’s Kanundrum " Blog Archive " Zend Framework
May 8th, 2009
[...] more here: Developer’s Kanundrum " Blog Archive " Zend Framework Share and [...]