PHP is the most popular server-side scripting language. Since 1995, the time is was introduced, web projects complexity level has grown enormously making no point in starting to code from scratch. PHP frameworks meet the demand for a structured way of development. In this article we’re going to make a comparison and analyze 10 most popular PHP frameworks to help you choose the best one for your business.
BENEFITS OF USING A PHP FRAMEWORK
- speed up the process of development,
- help you to write a well-organized, structured and reusable code,
- provide scalability for your projects,
- follow the MVC (Model-View-Controller) pattern,
- stimulate modern web development practices, i. e. object-oriented programming.
FUELPHP FRAMEWORK
Being an adjustable full-stack PHP framework, FuelPHP supports not only the regular MVC pattern but also its new version, HMVC (Hierarchical MVC) on the architecture level. It has an optional class called Presenter (previously called ViewModel) between the Controller and View layers that holds the logic needed to generate Views.
FuelPHP is modular and extendable, it takes care of security with the help of such features as input and URI filtering and output encoding. FuelPHP comes with its own authentication framework, as well as many other advanced characteristics and a comprehensive documentation.
SLIM PHP FRAMEWORK
Slim is also among the top PHP frameworks as a micro-framework that equips you with everything you might need for a small project or app, where a full-stack framework would be considered “too much”.
Slim is used by many PHP developers for developing RESTful APIs and services. It has such features as client-side HTTP caching, URL routing, session and cookie encryption, and it supports flash messages across HTTP requests as well. Its user guide is nice and easy to read.
PHALCON PHP FRAMEWORK
The Phalcon was introduced in 2012 and became popular among PHP developers very quickly. Phalcon is said to be as fast as a falcon because it is written in C and C++ to reach the highest level of performance optimization possible. No worries, you don’t have to learn the C language, as the functionality is exposed as PHP classes that are ready to use for any purpose.
As Phalcon is delivered as a C-extension, its architecture is optimized at low levels which notably diminishes the overhead, which is typical of MVC-based apps. Phalcon not only promotes execution speeds but also reduces resource usage. This PHP framework is packed with many excellent features: universal auto-loader, asset management, security, translation, caching, etc. As it’s a well-documented and easy-to-use framework, you might want to check it out.
Interesting fact about Phalcon: in 2014 it was the second best PHP framework for web applications according to sitepoint.com. If you look to the 2015’s report, you’ll be impressed of how dreadfully it dropped off the charts.
CAKEPHP FRAMEWORK
Despite being a ten-years-old framework, CakePHP yet remains one of the most popular. It is easy to learn with quick and adjustable templating. The built-in CRUD feature is very helpful for database interaction. In its latest version, CakePHP 3.x has improved session management and modularity (by decoupling several components) as well as widened the ability of creating more standalone libraries.
CakePHP frameworks can boast a decent showcase: it powers the websites of such brands as BMW and Hyundai. Opt for CakePHP if you need to build web applications with a high level of security, as it has many built-in security features:
- input validation,
- SQL injection prevention,
- XSS (cross-site scripting) prevention,
- CSRF (cross-site request forgery) protection, etc.
ZEND FRAMEWORK 2
Zend Framework 2 is an open source framework for developing web applications and services using PHP 5.3+. It uses 100% object-oriented code and most of the new features of PHP 5.3, namely namespaces, late static binding, lambda functions and closures. Zend PHP framework is a robust and stable solution stuffed with a lot of configuration options. It is normally not recommended for smaller projects but excellent for more complex ones.
Zend Framework 2 has numerous great features: cryptographic coding tools, easy-to-use drag and drop editor with support for front-end technologies (HTML, CSS, JavaScript), instant online debugging and PHP Unit testing tools, and a connected Database Wizard. Zend Framework was designed with the Agile methodology in mind, which helps to produce high-quality apps for corporate clients.
Zend partners with IBM, Microsoft, Google and Adobe. A year ago, Zend announced its next major release — Zend Framework 3, which would be optimized for PHP 7, still supporting PHP 5.5 onwards. Community expected it to be launched in Q3 2015, but in April 2016 (the times this post was written) the 3rd version wasn't available for download.
YII 2 PHP FRAMEWORK
Go for Yii framework to boost the performance of your website. It is faster than other PHP frameworks as it broadly uses the lazy loading technique. Yii 2 is completely object-oriented, and it’s based on the DRY (Don’t-Repeat-Yourself) coding principle, so it gives you a clean and logical code base.
Yii 2 is integrated with jQuery, and it comes with a set of AJAX-enabled features. It implements an easy-to-use skinning and theming mechanism, so it might be a great choice for someone who comes from a frontend background. It has also a powerful class code generator called Gii that promotes object-oriented programming and rapid prototyping as well as provides a web-based interface that helps you interactively generate the code you want.
PHPIXIE FRAMEWORK
PHPixie is a comparatively new solution, which was introduced in 2012 to build a high-performance framework for read-only websites. PHPixie also implements the HMVC design pattern like FuelPHP. It is made of independent components that can be used without the framework itself. The PHPixie components are 100% unit tested and require minimum dependencies.
The official PHPixie website has a tutorial that claims you can learn the framework in half an hour, and their blog also describes a lot of practical use cases. Among the features there are standard ORM (object-relational mapping), caching, input validation, authentication and authorization capabilities. PHPixie also allows you to use the HAML markup language, enables schema migration, and has a sophisticated routing system.
Fun fact about PHPixie — according to the 2015's Sitepoint survey, it is the favorite PHP framework of Ukrainian developers. Kultprosvet's team is also located in Ukraine, but we can't call PHPixie our number one, ha-ha. Read further to see who's our beloved. The same study shows it is most popular of the underaged group. We bet, the reason for that is the cute fairy picture on their website :D
CODEIGNITER PHP FRAMEWORK
CodeIgniter is a ten-year-old lightweight PHP framework with a very straightforward installation process that requires only a minimal configuration, so you won't face any hassle. We can call it a nice choice if you'd like to avoid PHP versions conflict, as it works perfectly on nearly all shared and dedicated hosting platforms.
CodeIgniter is not completely based on the MVC development pattern. Using Controller classes is a must, but Models and Views are optional, and you can use your own coding and naming conventions. Yes, CodeIgniter gives exceptional freedom to programmers. It’s a lean 2 MB framework, however, you can add third-party plugins if you need more complex functionalities.
SYMFONY 2 PHP FRAMEWORK
The components of the Symfony 2 framework are used by many awesome projects such as the Drupal 8 CMS, or the phpBB forum software, and Laravel — our (spoiler alert!) favorite framework — also relies on it. Symfony has an extensive developer community and a lot of passionate supporters.
Symfony Components are reusable PHP libraries that can be used to complete different tasks: form creation, object configuration, routing, authentication, templating, and many others. You can install any of the Components with the Composer PHP dependency manager. The Symfony's website has the Showcase section where you can take a glance at the projects accomplished with the help of this convenient framework.
We have just come to our main nomination — ”The best PHP framework” (sorry, Leo, you can’t have them all)!
LARAVEL PHP FRAMEWORK
Finally, we've come to our winner — a framework with the most beautiful name — Laravel! And we are not alone: Sitepoint’s recent survey showed it is the most popular framework of 2015. Despite being a comparatively new PHP framework (it was launched in 2011), Laravel has a remarkably huge ecosystem. It has almost perfect documentation and even more — Laracasts screencast tutorials cover all the missing docs and use cases.
Laravel has a lot of features that make rapid application development possible. Laravel has its own light-weight templating engine called “Blade”, elegant syntax that facilitates tasks you perform frequently: authentication, sessions, queueing, caching and RESTful routing. Laravel also comprises a local development environment called "Homestead" that is a packaged Vagrant box.
COMPARISON CHART OF PHP FRAMEWORKS
LARAVEL | SYMFONY 2 | CODEIGNITER | PHPIXIE | YII 2 | ZEND FRAMEWORK 2 | CAKEPHP | PHALCON | SLIM | FUELPHP | |
---|---|---|---|---|---|---|---|---|---|---|
REQUIRED PHP VERSION | 5.5.9 | 5.5.9 | 5.4 | 5.3 | 5.1.0 | 5.3 | 5.5.9 | 5.3 | 5.5 | 5.3.3 |
SUPPORTED DATA BASES TYPES | MySQL Postgress SQLite SQL Server | MySQL Postgress SQLite Qracle | MySQL Postgress | MySQL PostgreSQI SQLite MongoDB | MySQL Postgress Qracle Sqlite | MySQL SqLite SQL Server Oracle Postgress | MySQL SQLite Postgress SQL server Oracle | MySQL SQLite Postgress Oracle | MySQL SQLite Postgress Oracle (via plugin Slim-PDO) | MySQL SQLite Postgress |
CLOUD STORAGE | Amazon S3 Rackspace | Amazon S3 (plugin) | Amazon S3 (plugin) | - | Amazon S3 | Amazon S3 Rackspace Windows Azure | Amazon S3 (plugin) | Amazon S3 (plugin) | - | Amazon S3 (plugin) |
DOCUMENTATION ON OFFICIAL SITE | Tutorials, API reference, video lessons | Tutorials, API reference | Few tutorials, API reference | Tutorials only | Tutorials, API reference | Tutorials, detailed API with user comments | Tutorials, API reference | Tutorials, API reference | Tutorials, API reference | Tutorials only |
AUTOMATED EXTENSION INSTALLATION (VIA COMPOSER) | Yes | Yes | Not in core, only with 3rd party libs | Yes | Yes | Yes | Yes | No | No | No |