There is no thing best in the world. If something is best, it means, others simply wont exist and if exist, won’t survive.
Same is true for PHP frameworks. Presence of multiple frameworks is proof that no framework is best. So how will we select right framework for our next project?
I am Kapil Sharma, Technical Architect at Eastern Enterprise, with 10.5 years of professional experience in web application development, using different programming languages, CMS & frameworks. This article mainly shows how do I select framework for my next project. Personally I have worked with Zend Framework 1 (not 2), Symfony 1 & 2, Code Ignitor (not working any more), and Laravel 4 & 5. So I might not be the right person to compare all frameworks but it doesn’t stops me selecting right framework for next project, does it?
Please note, this article list down my points for considering framework for next project. There could be many who might not agree with me, and I respect their views.
To keep article short, I am assuming we already selected PHP as programming language and ruled out CMS. So only PHP frameworks are considered in this article.
On Friday, I posted a tweet.
That was just casual tweet followed after some other instances. But when I reviewed my week’s tasks (it include nearly everything I did over weekend) I realize I’m complaining. I immediately replied to myself:
That mean either I should try to fix it or just keep quite. This is the starting point to think how I can help to fix this problem. There are many huddles like:
- PHP frameworks lie in three categories; Micro framework, Full fledges framework and component based.
- Their target audience is different, some framework provide basic features and target small to medium projects while other target enterprise applications. How a common solution is provided for such a wide targets.
- There are many kind of people, some like to go through theories first and someone prefer to start doing things first and prefer learning by doing things. There are others who go for mixed approach. There are many who prefer to go through any available project example and learn by going through existing code. Symfony really made it easier through jobeet project and frankly I’m impressed by that approach.
Obviously no one can give one common solution. Still after considering quite a few facts, I personally feel if we have one example project implementation with us, learning become easier. So my Fix is:
Please note, I mean no disrespect to anyone, anything. Whatever I said was my thinking from my view point. I don’t feel everyone should/will agree with me. Everyone view is based on multiple factors. This post is about my view, my thoughts and I’m not claiming my thought is correct but yes, they will not change soon.
Why I’m writing this? I recently posted a tweet, tweet was:
While writing it my target audience was just few friends who follow me and occasionally reply. However I was surprised when my mailbox filled with quite a few mail like @xyz replied, @abc retweeted etc. One reply was from Taylor Otwell. His reply was:
Those who don’t know him, he is author and lead developer of Laravel; One of the most popular and probably one of the best PHP frameworks right now. I follow Taylor, his site, blogs, twitter; I’m his fan and wanted to be like him. Still Taylor, sorry but it was not typo. I mean worse case. Please, let me explain.
There were few other replies as well, few of them were:
Learning Laravel is the best case scenario. I came from CI and Zend. Laravel is much better.
Coming from CI myself I must agree
worst case? That’s upgrading mate…
Yes I agree with everyone. Developer within me agrees. Professionally I’m Technical Architect in a software company, I as Technical architect agree. This month only, I’d taken few official sessions about Coding standards, Code Sniffer and Test driven development. Laravel, as I read at many places, is one of the best examples of TDD. How can I disagree with anyone of you? Yes, I agree with everyone.
But after office hours, I’ve one more personality. I’m weekend developer. As weekend developer, I work on quite a few personal client projects, some personal projects. These projects are not enterprise apps, but apps that are targeted to be finished during 1-3 weekends. Weekend developer within me does not agree with any of you.