About 2,5 years ago at work we were still using PHP for new applications. With PHP being the language of choice I was looking at what MVC frameworks were available. At the time only Zend Framework (which was at version 1.5) seemed to be the only PHP5 framework. Aside from that it was a mature project and being developed by Zend made me decide to use it. I also reviewed the feature set at the time, of course.
Zend Framework has a steep learning curve but in my experience most OOP based MVC frameworks do. If I remember correctly I first used Zend Framework for an admin panel for a website. Aside from the time to learn the framework it sped up development. At the end I had created a nifty little admin panel for managing company profiles. Administrators were able to manage all accounts (information, pictures) and set-up permissions. A company could in turn manage its own details and pictures.
Programming with PHP became a bit more fun again. Zend Framework provided a mostly consistent API and came with pretty good documentation, although some parts lacked and still do at times.
It took about 4 or 5 months or so to fully rewrite the application. It probably could’ve been done in 3 months but as I said I found the learning curve for Zend Framework steep. I’ve even reported some bugs I found! Anyway, after several meetings with my colleagues we re-factored a lot of the application to get rid of old nasty hacks and incorrect work procedures of the old application. With the application being written in Zend Framework much of this was easy and fast to realize. Now, 2 years later we’ve added a lot more functionality. The application is still easy to maintain and to extend. And more and more plans are in the making for added functionality.
So, why is it that I think choosing Zend Framework was a mistake? Of course, it’s PHP but as I posted in earlier rants is that only recently I got the green light to use Perl instead of PHP. One problem comes from PHP though. With their latest release in the 5.2 series they suddenly announced end-of-life of PHP 5.2. Long before that it was announced that Zend Framework 2.0 would use PHP 5.3 exclusively. I knew that. But with instantly declaring PHP 5.2 dead and deprecated supporting Zend Framework 1.x after releasing 2.0 doesn’t seem to be required anymore… Why? Because after they’ll release Zend Framework 1.11 they stop doing major releases of the 1.x series. Even if I would be able to use PHP 5.3 it would be a lot of work to refactor the code to be compatible with 2.0.
Now this doesn’t directly imply that Zend Framework 1.11 will stop receiving updates in the form of minor releases. But looking at its history I fear the worst. At one point it was said that the current and the last 2 major versions would receive security updates. Out of 2 times this happened once. The second time it was supposed to happen only the current and last version were updated (I believe this was version 1.10 and 1.9. Luckily I already upgraded tot 1.9 when this happened).
Talking about upgrading, moving from Zend Framework 1.5, 1.6, 1.7, 1.8, 1.9 and 1.10 hasn’t always been painless. A couple of times sudden changes to their API have been made. At some times temporary backwards compatibility was provided, but not always. But that I can forgive, that’s why they’re major releases.
So currently I’ll probably be stuck (as in bug fixes and security updates) with Zend Framework 1.11 when it’s out. Zend Framework is a open-source project so I could always fork the project myself and customize it myself for our own purposes. Even so I’m disappointed with the course Zend Framework went (or seems to be going). The biggest problem with Zend Framework I think is that it’s more of a big collection of classes than a solid framework. Don’t mistake me here, most of the components are very solid. But if they would’ve kept the core small (that being the MVC part and related components) and had moved most classes to the ZendX namespace, such as the webservice classes, they could’ve kept the major releases to a minimum.