Choosing a framework is one of the most confusing parts in the initial stage of project development. Generally a development team chooses a framework, according to their experiences, comfort levels, framework popularity etc.
But, before choosing a framework there are many things to consider. The following are important criteria in choosing the right framework
- Application Goal
- Hosting Environment
- Quality of the Development team
- Fixes and Updates
- Community
- Security
- Documentation
- License
- Testing
Application Goal
The goal of the application forms an important part in choosing the right framework. For example, if your goal is to develop an eCommerce site, you have to choose a framework that provides much-needed benefits like online payment processing, lightweight, fast database connectivity etc.
The following are some of the sample application types which are suitable for each of the below frameworks
Laravel | Symfony | CakePHP | Yii | CodeIgniter |
---|---|---|---|---|
Medium Scale Portals | Large Scale Portals | Medium Scale Portals | Medium Scale Portals | Medium Scale Portals |
eCommerce | Mobile web applications | Mobile web applications | eCommerce | Simple dynamic web applications |
Mobile web applications | Light weight applications | Light weight applications |
Hosting Environment
There are many types of hosting environments like shared, individual, cloud etc. Many PHP frameworks require customization in the hosting environment. So, we need to choose the right framework, according to our hosting environment options.
Laravel | Symfony | CakePHP | Yii | CodeIgniter |
---|---|---|---|---|
Needs some customization | Needs some customization | Needs some customisation | Needs some customisation | No need for customisation |
Much suitable for shared hosting | Much suitable for shared hosting | |||
Supports CLI | Supports CLI | Supports CLI | Supports Yii CLI |
Quality of the Development team
It’s important to consider the strength and weaknesses of the developer(s) who are actually building and maintaining the application. Some frameworks are user-friendly and better for beginners. But some frameworks are strict in their coding standards.
Laravel | Symfony | CakePHP | Yii | CodeIgniter |
---|---|---|---|---|
Suitable for beginners | Suitable for beginners | Suitable for beginners | ||
Strict in coding standards and patterns | Strict in coding standards and patterns |
Fixes and Updates
Fixes and updates are important things, which help in maintaining a framework. Always try and choose a framework which is updated often and which is open about its bugs and fixes.
Laravel | Symfony | CakePHP | Yii | CodeIgniter |
---|---|---|---|---|
Excellent | Excellent | Good | Ok | Ok |
Community
If a framework is well recognized and popular, more support is available from its publishers, community members and service companies. If it has many applications or large community, we may have the provision to get many external libraries and packages as well.
Laravel | Symfony | CakePHP | Yii | CodeIgniter |
---|---|---|---|---|
Good Community | Good Community | Good Community | ||
Huge no of external packages | Huge no of external packages | Comparatively less no of packages |
Security
Web applications are potentially vulnerable. It is always better to select a framework which is capable of ensuring the security functions like XSS, Xsrf, Sql injection etc.
Laravel | Symfony | CakePHP | Yii | CodeIgniter |
---|---|---|---|---|
Good | Good | Good | Ok | Good |
Documentation
A good documentation is important to understand the framework, libraries and it’s plugins. So it is always good to evaluate the nature, volume and quality of existing framework documents.
Laravel | Symfony | CakePHP | Yii | CodeIgniter |
---|---|---|---|---|
Good | Excellent | Excellent | Ok | Ok |
License
Licenses are important for web applications. If an application has been developed using a BSD-licensed framework, it will be subjected to BSD license only. We can’t use that application for other license purposes.
Laravel | Symfony | CakePHP | Yii | CodeIgniter |
---|---|---|---|---|
MIT | MIT | MIT | BSD | MIT |
Testing
Testing is an important process in the development cycle. Frameworks which developers write unit tests are a definite advantage. Many of them provide the option to write test cases.
Laravel | Symfony | CakePHP | Yii | CodeIgniter |
---|---|---|---|---|
Good | Excellent | Good | Good |
Ideas2IT
Are you looking to build a great product or service? Do you foresee technical challenges? If you answered yes to the above questions, then you must talk to us. We are a world-class custom .NET development company. We take up projects that are in our area of expertise. We know what we are good at and more importantly what we are not. We carefully choose projects where we strongly believe that we can add value. And not just in engineering but also in terms of how well we understand the domain. Book a free consultation with us today. Let’s work together.