How to choose a PHP Framework?

After couple of years of experience, i came across such kind of questions from newbies like Which PHP framework is best to use? Which PHP framework should i use for my new project ? Which php framework is easy to learn ? Which php framework is good for large applications? After hearing all these questions i thought i should put some effort writing an article which could really help out beginners in choosing a framework.

php-frameworks

Before diving into the field of PHP framework first we should understand what is MVC (Model View Controller) ? It is just a way of representing our code in a better way separating database operations, logics and design.

Model is used to perform operations related to database.

Controller, as name suggest, control dataflow between view and model. It contains all the logic which are required in our project.

View contains mainly html, css, js i.e. design part of our website.

model-view-controller

If you see over internet there are lots of frameworks in php with many awesome features and also they are highly scalable but which one to choose that’s the biggest question. In my opinion one should follow these steps

Ask yourself Am i ready for a framework after doing core php?
Answer for this question must be always “YES”. you are always ready for it and you can deploy any framework after gaining knowledge of core php and basic concepts of object oriented langauage (not necessarily in php but in any langauge).

Which framework to choose?
It depends on, what are your criteria of selecting a PHP Framework . Criteria could be anything like ease of setup , learning curve , community support (most important aspect) , available plugins, job opportunities (specially for beginners), scalibilty and many more.

Ease of setup plays an important part in choosing a framework, a framework must be setup with less initial configuration.
Hosting requirement  is the next criteria to consider, if you are using shared hosting then sometimes it could be difficult to setup some framework just because of limited resources which are provided in shared hosting.
Learning curve must be short so that we can become more productive in developing applications.Every framework has it’s own set of rules, directory structure , naming conventions , coding pattern , template engine etc…. It takes some time to get used to it and start developing a project., so choose wisely.
Documentation and Community plays a key role to a framework success. No framework is tuff if it has got good documentation and great community behind it. Always choose a framework with active community support, after-all they will support you when you stuck during your development.

For beginners i prefer going with CODEIGNITER for the first time just because it’s simple to setup and easy to learn in comparison to other framework. This framework has got great community support and believe me almost all the php developers tried out this framework at-least once.

Your next option could be CAKEPHP because you can develop and manage huge application with this beautiful framework and also it has great community support and huge list of plugins to increase your project functionality. I personally used this framework and surely you will develop a great coding standard just because this framework used very strict coding standard for project development.

Cakephp, yii, kohana , symfony , fuelphp,falcon and many more are on the same level in developing any project.

Zend Framework , it’s the biggest framework in PHP and highly scalable application are developed using this and running successfully over the internet.You want a great job. deploy it, if you think your website is really big and have huge traffic then just use it but i think this is a very advance framework and it’s not for beginners.

My personal favourite

LARAVEL is one of the best framework i worked on for developing rest apis and a fully featured applications. It’s deployment is super easy, speed is better than others, very active community behind it and most importantly it increases your productivity and speed of development enormously. It support all the latest technologies whether it’s database or caching and performs almost all the tasks magically reducing burden from your head.You can read more about it at Why i choose Laravel for my next project?

Best of all , your own framework , now please don’t ask me why.. find out yourself.

All in all friends this is the right time go for a framework and make something awesome.