Zend Framework 2.x Review
April 01, 2016
Zend Framework 2.x Review
Score 8 out of 10
Overall Satisfaction with Zend Framework
I've used Zend Framework at several different companies. Most companies I've worked for are still using Zend Framework 1.x, and usually in migration to either a different framework or Zend Framework 2.x. I have been looking at Zend Framework 3.x but have not used it in production software yet. This review is primarily for Zend Framework 2. If you're a company thinking about using Zend Framework, you should definitely focus on using Zend Framework 2 and not the much, much older Zend Framework 1 anymore. Zend Framework solves the problem of bootstrapping and sharing knowledge because there is already well-written documentation around the Zend Framework software library. If you try to build a proprietary framework from scratch, you'll be spending a lot of money and writing a lot of unnecessary documentation. Training and hiring is simpler - as you can find people who have experience with Zend Framework.
- Zend Framework 2 provides a lot of best-practice tools, design patterns, and libraries for large-scale software projects.
- Zend Framework 2 uses an event-based model, a dependency injection model, and proper use of PHP5+ namespaces.
- Zend Framework 2 is used by a lot of large, leading software enterprises.
- Zend Framework 2 is overly complex for small projects.
- Zend Framework 2 documentation sometimes overlooks small details, which means you will need to delve into the code directly.
- Zend Framework 2 bug fixes on GitHub usually take quite a long time to get patched.
- Zend Framework 2 has made training easier, as we can point junior engineers to the official documentation.
Laravel is simpler but has less mature components. For example, the event modeling and dependency injection in Zend Framework 2 seems to handle many more advanced cases a lot easier - where as in Laravel you will have to probably build much more on top of what they provide. CodeIgniter is smaller, but also a bit more restrictive as the code base grows. Symfony is good, but doesn't offer all the same component flexibility. Drupal and WordPress are appropriate as CMSs, but when building a site that needs significant customization without any kludge or weirdly trying to fit your business model into the CMS scheme, it makes much more sense to use Zend Framework which would allow you to do things more specific to your business needs. However, that comes with the downside of NOT being able to leverage stuff that these CMSs provide. There's always the right tool for the job.
Zend Framework is well suited for large (or potentially large) software projects. It has the tools and structures for organizing and maintaining millions of lines of code by providing different scaffolding and service management capabilities. Obviously, it works well in environments that prefer a traditional PHP-based MVC stack as that is how it's designed. For smaller or less experienced teams, it might be faster to build something using a simpler framework such as Laravel or Symfony because the learning curve is a bit less steep. The routing system of Zend Framework is incredibly powerful but also very hard to get right, for example. Overall, however, being skilled with Zend Framework 2 will be very advantageous.