Which PHP Framework is right for you? There seems to be an uprising in the world of PHP frameworks ever since the formidable Ruby on Rails took the programming world by storm, catapulting the quiet Ruby domain into limelight!! Ever since, new PHP Frameworks of all sizes and shapes(slow/fast, bloated/neat, simple/complex, light/heavy, rawking/suckerfish) seem to be popping up now and then and a lot of them seem to be modelled after RoR aka Ruby on Rails.
But then, if it was so easy to clone success, there wouldn’t be any more failures!! 😕 There’s a good little review of 6 (RoR like)PHP Frameworks on H3RALD, which compares them quite honestly(& the reviewer states it clearly that he personally likes CakePHP) listing out their Pros & Cons. “Only PHP5” requirement has been tagged as a Con and some short sighted people indeed might howl on that unfairness, I think its only appropriate seeing that the majority of stuff written in PHP is for v4 and PHP5 wasn’t as widely adopted as one was hoping for(both by companies & webhosts)!!
So overall, quite a good review. I’m now thinking of trying CodeIgniter and CakePHP to see which suits me best, since the former is a simple framework which is a speed beast while the latter is a good compromise between features and speed. 😉
CodeIgnite certainly seems to be quite good!! *thumbs up*
Thanks for mentioning my article and good luck with Code Igniter and Cake 🙂
You are welcome. Write a few more & I’ll mention them as well!! 😉
Thanks. Code Igniter is certainly looking quite cool right now!! 🙂 I might end up using that instead of CakePHP!! 😉
I have been working with CakePHP for about a month now, and I absolutely love it. The documentation is a bit sparse, but the community is very active and helpful.
Well, I do say each to his/her own preference. CakePHP is not bad, but personally I prefer CodeIgniter because it runs perfectly fine out of box straight away without asking me to do any changes to my hosting structure or something. And the feature that scores above CakePHP is that it isn’t filled up with a lot of stuff, which makes it lean & fast, as CakePHP is loaded with a lot of stuff that I don’t use so I wouldn’t like to compromise on speed & ease because of that. 😉 But as was mentioned in the review on H3RALD, CakePHP is a good compromise between features & speed. 🙂
What I feel is that if you are working in some language for last 7 years you dont need frameworks. You have your own code base and you find frameworks too heavy and too many lines of code.
Ok that you is basically me.
and better get spam karma
oops u have am sorry, 3rd comment 😛
You are right to some point. After working for sometime in a language, you will ofcourse have a codebase of your own, your own libraries etc. But then the framework is not necessarily about all that. Its about style as well. For sometime I’ve been reading/hearing about the MVC pattern & its benefits etc. To switch my codebase to MVC would mean a lot of code writing etc. However when I tried Code Igniter, I found it easy to use & flexible and I was able to plug almost all of my libraries into it without any problems. So the benefit for me? I was able to start using the MVC pattern with all my libraries without doing much work. Also, for the first timers or those new to a language, frameworks can prove to be an important asset.
As for the myth of frameworks being too heavy & full of useless cruft, thats a myth definitely. You get what is there in the framework. If you look at some of the top frameworks, they offer different feature sets & hence weigh accordingly. So you can look at a framework which suits you best. Also, if one is good in the language the framework is written in, then you can modify it to remove the elements which you don’t need, hence increasing its performance. I know for sure a number of Code Igniter users have modified their installations & removed the libraries etc. which are not needed by them. 🙂
OK. This is my PERSONAL view point. This may be distorted. I find frameworks coming with too much extra things. I need simple alert function and I need to create an object and do all the xtra stuff. I come from a background which believed in one line code (which only coder can read:p ). I also remove extra bag and baggae from frameworks when I use any framework.
What matters at the end is performance. 🙂
Yeah, I agree with you, performance is what matters most, but then code readability is also equally important, since the optimised code is no use for you if a few days or months later you yourself are not able to understand or modify it easily! 😉 Also, in this regard, working solo has its advantages, but when working in a team of more than 2 programmers, then some standard needs to exist so that the code quality & readibility is same and code is understandable to those who didn’t write it! 🙂
I’ve found this comparison
of PHP ports of Ruby on Rails framework and where it seems that Akelos might be the best framework for PHP, they have not only ported Rails, but have added a simplistic internationalization layer and have solved some PHP problems in a simple way.
Bermi (the guy who coded Akelos) has ported Rails and sticked to their philosophy for simpleness. The bad point it’s that Akelos is quite new and needs to get a community around it. In the article they’ve penalized it for being short in documentation (inline docs match Rails API docs), but I found that ALL RoR docs can be used for Akelos and that’s a sort of community share.
I would say I used to be in the same camp as kumar. I used to think there wasn’t a need for a framework and all of their extra baggage. However, after diving into the core API for Cake PHP 2 I was convinced that I was wrong in that thought. Yes, there are many things available – but the framework is so lightweight and flexible, and I can use things only when I need them. It gives you the tools, but doesn’t require that you have to use them for every project. I can use static pages, or a more indepth page that requires custom routing and database connectivity.
Having programmed in PHP for the past 6/7 years – I definitely had a codebase to use. However, with PHP5 and its extended support for OOP – much of that needed to be re-factored. I must say, using CakePHP has truly helped with rapid development. I simply had to ask myself – why re-invent the wheel?
So, I understand both sides – and I am still a firm believer that you should understand the language behind the framework, but I don’t believe there is inherently anything wrong with frameworks themselves.
I was following the comments on this post and i think i agree with chetan that you dont need a framework if your knowledge of the language is quite good.
But it surely is helpful if there exists some code which alleviates the repetitive tasks which are a bane for all programmers. Personally i hate making forms. But i havent found a simple solution for this problem yet. I have gone through lots of code and come up with a solution. Its not a framework but it tries to plug some problems i face in my development. If you have time you can look at this code http://www.esnips.com/doc/11d221f2-8b52-4a8d-85b0-316ad854ab55/tuxedo
One personal observation; i find it hard to “grok” this MVC thing. And almost all the frameworks mentioned here sports them. Does there exists a simple MVC framework which is easier for non-OOP crowd?
Its very easy to use when you just get the basic intro about it. CodeIgniter is the easiest of MVC frameworks that I’ve seen(& I’ve seen a lot) since its not strict but flexible. CodeIgniter’s user guide is in a step by step tutorial format & also explains in easy english about Models, Controllers & Views.
Try it & once you get the hang of it, you’ll love it! 🙂
Hi Sandeep and Amit,
First of all I rarely see Indian developers actively discussing some thing. I am glad we r talking about PHP not .NET. I have been developing web apps for last 7 years and i have learned one thing. If u r working on a web app then speed matters. Unfortunately none of the developed framework or library seems to deliver speed. And the very important factor that affects a developers decision is time line. Hence wen I am under pressure to deliver some thing then speed takes backseat and I tent to use libraries and frameworks. I use Prototype for JS. Now we have Jquery. But am still hooked to prototype coz m used to it. So at the end its our own personal view point. But still I feel frameworks cant match custom written code.
Actually, Kumar, good frameworks might deliver faster apps than custom written code…
If nothing else, good frameworks (such as CakePHP) teach you proper design and programming skills.
nice article, I wonder which is best for me!!!
I was looking for a great php framework.
And I found it.
It’s kite new, under-known and named Akelos Framework : http://www.akelos.org
I’ve been using it for 2 months now and I’m so happy with it !
I have tried many frameworks (Symfony, CI, CakePhp, and the like) and with all
of them I had to choose between ‘powerfull/overwhelming’ and ‘weak/flexible’.
Akelos is really powerfull and I feel free to code the application I want.
I do some advertisment because Akelos is really under-known and I wanted
to share some feedbacks about my experience.
The only drawbacks of Akelos are : small community and small documentation.
It’s mainly because it’s a new project.
Akelos is a PHP port of Ruby on Rails. And it’s a great port : it respects
the phylosophy and the features without perverting anything.
More ! Akelos added many great features of his own that feat gracefully
with the whole (the multilingual feature and view Sintags are so great
and easy to use…).
Akelos rely heavily on conventions and that remove all the overwhelmingness
of the framework : it’s easy and intuitive.
Really, you should try it.
To start, you can look at :
– The screencast that cover the basic features of the framework : http://www.akelos.org/screencasts
– The README.txt in the Akelos archive (zip or svn) : http://www.akelos.org/download
– Some basics : http://wiki.akelos.org/tip-sheet-for-beginners
– To try and get started : http://wiki.akelos.org/gettingstarted
– The small tutorial (that is going to grow) : http://www.akelos.org/docs/tutorials/booklink
To learn more :
– Some documentation wich have to be completed : http://wiki.akelos.org
– Classes doc to learn about all the powerfull methods : http://www.akelos.org/xref
– The forum to grow the community : http://forum.akelos.org (very responsive community, despite it is small)
– The plugins repository (that has to grow) : http://wiki.akelos.org/plugins
Please forgive my unperfect english and be sure of my sincerity ; I’m not member
of the Akelos team or anything, I’m just an exultant Akelos user.