Zero in on Zend Framework!
April 30, 2016

Zero in on Zend Framework!

Lauren Merka | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with Zend Framework

We use Zend Framework as the engine for our main site. I am the only one that manages it, but eBaum's World wouldn't run without it!
  • Excellent interface for databases. I trust that no bad data will accidentally be injected causing the databases to become corrupt or drop.
  • The routing is really great. We have a lot of custom routing and it makes it very easy to add or adjust routes and ensure they're getting where they need to go.
  • Zend provides so much flexibility in the controllers for dealing with the view. It's so easy to customize the view to render just how you want it. Especially when dealing with a request that may or may not be ajax.
  • My most recent gripe with Zend was when it turned out that the order the routes are loaded differ from server to server. I know this is a PHP issue but it would be great if Zend stepped into ensure the routes were loaded and parsed in the same order no matter where it's running.
  • I wish template variables were automatically included in nested templates. It's annoying having to pass the variables once in the controller and then again within the template when loading in a new piece.
  • The database functionality could use a bit of expansion. We had to write our own workaround when needing to specify a specific index. There's no built in function to handle this and we didn't want to have to resort to hand writing queries that require a specific index that the DB might not default to.
  • Zend is so flexible that we haven't even felt the need to upgrade to Zend Framework 2. There's nothing we need that it can't do.
  • With our installation it's so easy for me to create new modules, and have model, view, controller, route, up and running in minutes. It is so straight forward and logical it's so simple to work with once you get the hang of it.
One time we needed a new site up and running fast. It needed a complicated blog style CMS with good user management and Zend just wasn't going to cut it with the time constraints. We ended up going with Expression Engine, which is built on top of CodeIgniter and I HATED it. I ended up having to make so many customization inside the source code to be able to use our file storage system as well as configuration changes based on the environment. Thankfully the site is no longer functional and I can just stick with Zend! Zend is just so flexible.
Zend is well suited when you have a large, complicated site that will also need its own custom CMS. Zend doesn't get in the way and it's really easy to build exactly what you want, in a way that's consistent. It is not appropriate for a situation where you need something really fast. It definitely requires some leg work and configuration to get it up and running.

Using Zend Framework

1 - I am the Head of Development and the only software engineer. So I do everything. Design new modules, models, libraries, scripts, database tables, queries, javascript, html, css, everything. The team asks for a new feature and I build it.
1 - It's all me again. There's no real support needed for Zend. Just supporting our code base.
  • We use the cherry picking bootstrapping abilities to quickly get scripts up and running, especially when they deal with the database so we don't have to duplicate DB calls in straight PHP.
  • The Zend View Helper set up is so great for adding key functionality off to the side that doesn't need to muck up the regular data fetching and template building. The reusability is great.
  • I love the functionality built in for debugging. Just the regular Zend_Debug::dump() I use it on a daily basis! As well as the ->__toString for queries to easily copy/paste into a MySQL editor.
  • We rely hard on the APPLICATION_ENV and the config/bootstrap to easily customize the data sources for production, staging, and development. It makes it so easy to set up the config once, a few checks in the bootstrap and every environment is flawless. It removes the headache of having to edit IPs everytime. I'm not sure if this is innovative but it sure does save a lot of hassle.
  • We use the library namespace quite a bit. At this point we have 2 separate libraries, one that we can easily port and have it work with any new site as well as once that's specific to eBaum's World. We have amazing code architecture but Zend's flexibility makes it so easy to manage.
  • We may be expanding our reach of sites we manage, and if that becomes the case I can't wait to convert those code bases to Zend and see complicated code become simple and clean.
I absolutely love Zend Framework. However we are using Zend Framework 1 and when we get to the point that we need to go Zend Framework 2 (for PHP namespacing) I may explore other frameworks. When we chose Zend it was the best option for us. I'd like to see if maybe there's a better fit that doesn't have the same complicated overhead of Zend Framework.

Evaluating Zend Framework and Competitors

Yes - My company took over an existing site with a homegrown CMS. It was an absolute mess!! It was trying to be model - view - controller, but really it was a giant switch statement. There was so much legacy code and bad logic that the maintenance it needed was out of control.
  • Product Usability
  • Product Reputation
  • Vendor Reputation
My boss was the one who selected Zend Framework. His main reason for it was guaranteed support. Since Zend is the commercial backing of PHP there was no chance that Zend Framework would become an abandoned project, leaving us scrambling to replace it. The quality of the code is superb. Plus there's a large user base which means it's easy to search for a problem you're having and find the answers quickly. Which is really important when you're such a small team.
Given that I didn't do the initial evaluation, this question is a bit tricky. I trust that my boss did the right thing when selecting Zend. Zend Framework has excellent resources, and isn't likely to become an abandoned product. The one thing I would look at when selecting a new framework will be overhead. Zend doesn't perform that well with overhead. We're a very large site with millions of page views a day. The site is growing and that kind of overhead will quickly become detrimental. But I will definitely compare Zend Framework 2 with other frameworks first.

Using Zend Framework

Zend is very usable once you learn how to use it. I've had moments where I thought what I want to do isn't possible but I've learned I haven't looked in the correct place yet. Zend is a Catch-22. It's very usable once you know how to use it. But I strongly feel it's worth learning.
ProsCons
Like to use
Easy to use
Technical support not required
Well integrated
Consistent
Convenient
Feel confident using
Lots to learn
  • Creating new modules is SO easy. It takes 2 minutes. I can have the route, bootstrap, controllers, models, template structure ready to go. And I know that it will work!
  • Pagination!!!! We're a media sites with LOTS of listings pages. I love the Zend_Paginator object. We incorporated it into our List class so every list call generates this object so it's consistent in all templates. Pagination logic is tedious, and the Zend_Paginator has everything you need without the headache.
  • Recently we've been focusing on SEO improvements and the flexibility Zend offers for adding meta tags to the head or anything else is so easy from within the controller. I don't feel like there's a lot of logic duplication in 18 different places.
  • Zend is hard to get in to. The set up, configuration, bootstrapping, etc is incredibly daunting. My boss handled that but when I look at what he did I can't imagine how he figured it out. We have a non-conformist setup to our code base where we have a series of modules under an app folder. Within each module we have model, view, controller folders. It works well for how expansive our site is b/c having all controllers or modules in one folder would be so hard to sort through quickly. That speaks more to the way we work.
  • Zend Framework can be hard to trace through when you're trying to figure out the innerworkings. I know there's some not-great hacks I've implemented in our codebase b/c I didn't have the patience to examine Zend. But usually with Zend, once you figure it out you're kicking yourself for not having realized it sooner.
  • The routing is starting to become a problem. We use regex in multiple XML files, and we've recently run into issues where each server reads the routes in a different order, causing different results. In my development environment it's fine, in production it isn't b/c a certain module route isn't read at the end like my dev env, causing a 404. I've had to result to moving routes from one module to another to ensure read order, but it breaks the organization of the code base.