Zend Framework vs. CodeIgniter
I hope nobody minds but this is going to be more of a rant than an actual performance comparison of the two frameworks. First of all I started using CodeIgniter almost two years ago, and while it was a bit of a thorn at first it was never super difficult to figure out how to do stuff. The documentation was easy to understand and full of examples of what to do, plus things worked when I did them. As a result I've used CodeIgniter on several projects since.
Recently at my current job the powers that be (hereafter referred to as "they") decided to go from a progressive coding approach to a more MVC type approach using a framework (either custom made or already built). I'd like to point out that I'm all for using a framework especially on the applications we've got right now. I did suggest CodeIgniter as the framework of choice but my suggestion was received with disgust, so I kept my mouth shut...big mistake.
After attempting to build their own MVC Framework "they" decided to go with Zend Server Community Edition. Now I didn't (and still don't, which is sad) know a lot about the Zend Framework so I was somewhat excited to see it in action, especially since my experience with CI has been so great. And I guess maybe that's one of the reasons I'm posting today.
For anyone out there wondering if Zend is a good match for you, STOP!
For anyone out there who recently implemented the Zend Framework, WHY? It's not to late to turn back.
I've been working with the Zend Framework for about two weeks now, and I don't expect to know everything there is to know about Zend but I do expect to know SOMETHING. Let's just take a trip down memory/nightmare lane.
Please excuse me if I can't remember all the details, I've tried so hard to block some of this from ever resurfacing.
My first task was to figure out how to ajax with zend, seems simple enough right? Shoot zend even created a helper that loads the (almost) latest jQuery libraries for you so you never have to worry about being up to date. Not only that but zend has a way to build your Ajax request so you don't have to know how to do that yourself either. What they don't tell you is that in order for the jquery libraries to be loaded on your page, you DO have to use at least one of their custom php jquery building tools (in other words, you can't make all your jquery by yourself), otherwise the libs just wont load. Instead they let you beat your head against your desk for hours and hours until you finally un-comment a test jquery builder you had previously used only to find out that was the missing piece.
Next our whole team has been tasked with creating a new application using zend, it's been over a week now, I still feel like I don't know anything. Now you might be saying to yourself, "did you try google dipstick?" Yup sure did, and as google does it pulled up all kinds of links. Almost always the top 5 go strait to the official zend documentation which is by far the worst documentation I've ever seen about anything. It's like when someone has a secret and they know you want to know, but they know that if they tell you then they'll lose the leverage they have on you, so they just hold on to it with that smirk on their face and never tell you anything. There's all kinds of words but they don't say much and the examples are horrific at best. One example I was looking at had a variable in it, and they'd conveniently cut out the part where they actually initialize that variable so you have no idea what values it is supposed to hold. Turns out it was an array, but I still don't know if it was a named array or if it can simply be numbered. I actually got a little excited when I stumbled onto the Programmers reference guide, I thought "yes if anything will help this is it", I was wrong to think that and I apologize.
Now here's the kicker, I do need to backtrack a bit. When you install zend there is a GUI that is installed to help you manage how the server works, I've recently lost this GUI, by lost I mean I know where it's supposed to be and the files are all there but the GUI doesn't show up when i put the correct URL in my browser. So I started researching this, only to find that a certain part of the server called lighttpd is not running, the GUI is the only thing that requires lighttpd. So i started googling lighttpd is not running and got a fair amount of hits on that one. None of which helped. Finally I decided to create an account with the zend forums and humbly ask the zend folks themselves what to do about my problem.
To my dismay, when I logged in I found a little counter at the bottom of the page that said "Users browsing this forum: disgruntled and 0 guests" (if you haven't guessed, I'm 'disgruntled'). You have got to be kidding me, I'm the only one on this forum? Now to be fair it was after 5:00 on the east coast so I imagine the 3 people using zend in that part of the world have gone home.
Needless to say, I'm a little disappointed, awe who am I kidding? I'm downright furious.
On the flip side, if anyone reading this has any idea on where I can get my hands on some useful examples of zend at work. Please leave them in the comments.
Print This Post

September 3rd, 2010 - 07:09
One of our teams uses both CI and Zend (not on the same project
), I’ll try to have one of them give you a shout. I’m sure they’ve run into this issue a few times.
As far as “light foot” I ran across that a while ago but ditched it as I run on a windows platform more often than not (yes there is a windows port, no I don’t speak/read Hungarian). Seems like a nice light-weight http server though, I’d give it a whirl if I had a linux box running at home. Sorry that it’s been a mess for you.
September 3rd, 2010 - 08:24
well two days now and no response to my post on the zend forums. The good news is it’s about 90% affirmative we are dumping Zend and going with another framework. The competition is between CakePHP, CodeIgniter, Symfony and Yi (hope I spelled that right). I’m pretty excited I get to make a case for CI, and playing around with it yesterday was like being kissed by an angel, or maybe a demon (if you are familiar with Sock’s experience kissing a demon in Reaper season 1).
@Phil, thanks for the consideration, not sure what the “light foot” comment was about but maybe it’ll sink in later.
September 6th, 2010 - 15:51
Lightfoot == lighttpd. Why it’s pronounced that way is beyond me, but now you know, and knowing is… well like useless trivia that my head is full of, and now yours is too
I checked with the team and they concur, Zend is no fun. We roll Code Igniter as much as possible, we used Cake (think old school P.I.N.K. site before the conversion and tear down), but have ditched it for CI.
Happy to hear you get to roll in a new direction… and man, I miss Reaper.
September 7th, 2010 - 07:35
haha, funny thing is the other night I was having a case of insomnia and realized that “lightfoot” must’ve been a reference to lighttpd, thanks for confirming that. What was the reason for dumping Cake? That info could prove useful in my case for CI (since Cake is being tried out by our lead).
“man, I miss Reaper” = that makes two of us.
September 11th, 2010 - 10:12
Sorry for late reply, not completely sure why they are dropping Cake, I think that it just doesn’t make sense to roll with Cake and CI. I’ll have to give Ryan a buzz and see what the arguments are.
September 12th, 2010 - 14:50
eh, no matter now anymore. Cake didn’t make our cut. In fact CI came out ahead of the pack even though there is some complaining about not sticking with Zend (I’m not sure why the complaining). So as you may have guessed I’m pretty excited, WOOT!
March 18th, 2011 - 02:24
I use both codeigniter and zend.
codeigniter as my base framework and use zend library to add more classes.
I like zend’s data model approach. It is much easier to use.
And i like the implementation of codeigniter’s controllers and views.
So i decided to use both as one..
March 29th, 2011 - 07:00
@zurc
“I like zend’s data model approach. It is much easier to use.” Our lead felt the same way, he didn’t like using $this->load all the time so we created an autoload plug-in that allowed us to do $var = new Class(); and then go with the obvious $var->. It worked out beautifully.
We still used the CI $this->load for some things (like views) but for loading models and library files we used the autoload plug-in.
In fact by the time I left the company someone who didn’t know probably wouldn’t know that project was built on CI.
Just another reason to love CI, it’s very flexible.