I get asked a lot: which is the best PHP framework? Or, should I choose PHP framework A or should I should PHP framework B?
The short answer: it depends! See below for the deeper answer.
When considering a framework, besides checking out what the uber-nerds are talking about at the time, consider the current cutting-edge thinking about frameworks in general, and be sure your choice of a framework, is up-to-date in that regard.
The no-framework PHP framework
For example, the move these days, is towards the ‘no-framework framework’ style of framework – that’s a tongue-twister! Basically, the more advanced a framework is, the more open it is.
You should be able to drop in components as you need then from any source. So for instance, if you don’t like the ORM layer in a framework you happen to be using, you should be able to easily plugin some other ORM.
At the end of the day, learning one framework or another should not be considered the end of the path – you should expect to have to learn a new framework from time to time … as things mature. The good news is that once you’ve learned your first MVC framework, the rest will come pretty easily since they are all based on the same basic concepts and patterns.
We just upgraded our servers to Apache 2.4.9 (and PHP 5.4.29) so that we could use the Laravel PHP framework.
The upgrade was pretty flawless, save two minor issues: one with a WordPress plugin and the other was with a PHP.ini setting that was no longer supported in Apache 2.4.9.
… This caused CodeIgniter to show a 500 internal sever error. CodeIgniter error handling stinks. That alone is reason enough to dump CodeIgniter.
Apache 2.4.9 is fast!
As an added bonus, we were pleasantly surprised to find that Apache 2.4.9 is significantly faster than what we had been running – Apache 2.2.27.
It’s best to keep your server software up-to-date to take advantage of performance improvements and security fixes. If you let your software get too out of date, the eventual upgrade could be a nightmare as radical changes to software, is more likely to break things than minor upgrades.
Someone asked me recently if I though the CodeIgniter core libraries would still be supported given that the creators of CodeIgniter have officially dropped it. I could write about it, but a quick vblog is easier … here you go:
I don’t how many of you are interested in PHP frameworks … if you are an intermediate level PHP programmer who understands OOP PHP, you ought start learning about PHP frameworks because they will save you a lot of time developing web applications and make them more robust.
Anyway, when you have frameworks, you will have framework battles! CodeIgniter was one of the more prominent PHP frameworks out there but it is quickly loosing favor to a much younger sexier framework called Laravel.
… The ironic thing about this, is that the Laravel developers are probably not very sexy themselves* … given that they had time to develop a new PHP framework. But this matters not, because the world needs more non-sexy nerds developing good code.
So here is my video take on this subject:
1. Being a staunchly heterosexual male, I have no ability to discern whether a man is sexy or not. In this particular case, I have no inside knowledge or any information whatsoever with regards to the sexiness of the nerds in questions. For all I know, they could be master pickup-artists who have mastered ‘The Game’.
So you know a little PHP and you’ve heard about PHP frameworks like Zend, CodeIgniter and Laravel but you have no idea what they really are and why you might want to learn them … if this is you, watch this video:
If you like the video, be social about it and let people know!
I recently had a conversation with a good friend of mine who has his finger on the pulse of the web app developer community – whether it be PHP, Ruby and even .Net.
So I asked:
Last we spoke, you mentioned that the Zend Framework was in a do or die situation?
Can you elaborate on that? I am just curious.
Rails 3.x is a completely different monster. They replaced their JS layer with jQuery. They replaced their ORM with Arel and ActiveRecord is now a thin wrapper around Arel. They replaced their web server archictecture with “rack” middleware. What this has done is standardized certain portions of the framework to the point where they are truly modular. In the rails community another framework will advertise that it’s “rack compliant” or “built on top of Arel”. What this means is that 37 Signals isn’t *the* ruby company and so they can specialize and delegate, while providing a strong brand that promotes software development best practices.
In the ZF community, ZF 1 worked ok, but it relied on a few anti-patterns (heavy use of singletons in order to ensure that performance wasn’t abismal). ZF 2 is trying to address that, but they have a really small team of strong PHP developers that are working on the core pieces (like the MVC implementation and the persistence). This has made the release of ZF 2 “just around the corner” for about 6 months now.
Also, because the people doing the rewrite wrote the first ZF, they want to clean up all their mistakes and so there’s a bit of ivory tower engineering going on (heavy use of dependency injection and inversion of control patterns), which will make the framework less friendly to beginners. Add to that the fact that Zend_Db was a huge face-palm and that people want integration with Symfony (a competing PHP framework) components, Zend is going to have to give some ground and start making some tough calls to deliver.
Finally, they HAVE TO DELIVER, because ZF 2 is written with the assumption that you’re using PHP 5.3+, which will be a huge shift for large code bases that haven’t seen a serious rewrite since PHP 4. If they don’t make ZF 2 a resounding success, the community around ZF will probably move to greener pastures (my money is on symfony or just not PHP).
my 2 cents,
… Some interesting thoughts, so I continue:
Now that a few years has passed, what do you think of Ruby vs. PHP these days? When we looked at it, I found the libs a little weak .. I imagine all those wholes are filled by now.
I think Ruby’s shaping up nicely for getting something done quickly and elegantly. There’s a huge aversion to ivory tower architecture, which I appreciate. I think that there are still performance issues on the whole that are being addressed, but now there are a lot of different ways of dealing with it (or even not dealing with it by using a cloud service like Heroku).
My final thoughts
My buddy has been developing web apps for years and has worked with several technologies – he like me, is language agnostic. We pick the best tools/language for the job, and we don’t get too religious about anything in particular.
So does this mean PHP is on its’ last legs or am I advocating Ruby? No, PHP is not going anywhere. I decided to post this just as food for thought … something that you can keep in mind as you develop your skills and your career.
People ask me from time to time, what PHP framework is the best one to learn?
Well, I always look at technology choices with two things in mind:
How capable is the technology?
How accepted is the technology?
If you look around, it becomes pretty clear, that if you want to learn an effective web application framework, you want to learn the Zend Framework – indeed, the trend is with Zend.
Zend framework being used by companies large and small
I know from first-nerd experience that the Zend Framework is being widely adopted. Just recently for example, Intuit and the BBC have implemented new web apps that are Zend Framework based.
… I know because my good buddy Jon Lebensold of Zendcasts helped build one of them.
There are plenty of other examples out there I’m sure … and I am confident that the trend will continue towards the adoption of the Zend Framework. With the PHP company (Zend) and IBM behind it … it doesn’t take a brain surgeon to figure that one out.
My good buddy and right-hand-nerd, Jon is being flown down to do a live webinar for the Zend geeks at Intuit. It seems the accounting giant has recognized Jon’s ability to take the complex and make it seem simple.
… Jon is starting to realize that my choice to go with the Zend Framework a few years ago made sense. Actually, it made dollars and cents!
OK, bad nerd humor … I know. I’m just low on material that isn’t profanity laced.
If you want to know WHY, after looking at all the other PHP frameworks out there, that I thought the Zend Framework was the best choice long term (even back when Zend was still in Beta) .. you’re going to have to ask!
Zendcasts.com began this year with the hope of assisting intermediate PHP developers further their Zend Framework skills. If you’re a PHP developer interested in building apps on Google Wave or want to watch someone build an AJAX application with web services like Google Wave and Intuit’s QuickBase, this free webinar will be worth spending a lunch hour at your desk.
The webinar takes place Wednesday, November 18 at 12:00 (noon) Eastern Standard Time (GMT -05:00).Register online now.
Here’s the banner:
Just in case you are not familiar with Quickbase … just click on the link.
That’s it for today. But coming soon, I will have some pretty big news … actually, the biggest thing to come to killerphp.com since we ordered that huge pizza! Ok, even bigger than that!!