PHP Frameworks Comparison 2015-Part 2

development_13_0

In this blog, I go into the details of the criteria of our “bake off” for PHP frameworks comparison. You can find our initial blog launching this series at Launch of the PHP Frameworks 2015 Comparison. Our development team started out listing and weighing the criteria on which we would objectively compare the most widely used PHP frameworks for our needs. We then picked the most widely adopted 5 frameworks, and built the same web application with each framework. This work provides us with a solid knowledge base for a framework comparison series over the next few weeks where we go in depth with each one of the major PHP frameworks. The frameworks we evaluated in detail will be blogged about here on the Artemis blog, From the Quiver:

  1.     Laravel
  2.     Symfony 2
  3.     Yii
  4.     Zend Framework 2
  5.     Phalcon

As part of the comparison exercise, we decided to forego the evaluation of the widely-used but legacy frameworks such as Zend Framework, CakePHP, CodeIgniter and Fusebox. The Artemis development team had worked with all these frameworks and decided that the adoption of these frameworks would take us back rather than help with building the next generation of web applications for our client. We are excited that we will be able to summarize our findings and share with the general PHP development community what our final selection was, based on a comprehensive set of evaluation criteria. These criteria include:

I.    Core Framework design

  1.     MVC support
  2.     Thin controllers
  3.     Exception handling at the framework level
  4.     Inheritable configuration with respect to environments and installation across servers
  5.     Overhead required to create basic module configuration
  6.     PHP 5.5+ support
  7.     Event management framework
  8.     Dependency injection support
  9.     Ease of bootstrapping and integrating with PHPUnit
  10.     UI templating support
  11.     Command Line interface (CLI) to execute applications
  12.     Support for manipulation of various data formats like JSON and XML
  13.     Useful debugging tools – such as logger support with customizable log levels, DB call instrumentation and request parameter logging.

II.    Performance, scalability and redundancy

  1.     Support for application caching
  2.     Special features or capabilities focused on performance
  3.     Proven adoption on large projects

III.    Security

  1.     Modules for security such as authentication and authorization, and granular access controls
  2.     Frequent security patching

IV.    Instrumentation and troubleshooting support

  1.     Instrumentation metrics or accessibility at the method level
  2.     Instrumentation metrics or accessibility at the SQL level

V.    Database and Object-Relational-Mapping (ORM) support

  1.     Support for models that interact with relational databases used at the client, specifically MySQL and Oracle, and possibly MariaDB in the future
  2.     Support for fine tuning of the SQL used in the ORM
  3.     Support for interaction with NoSQL databases like MongoDB

VI.    Community Support

  1.     Active maintenance and periodic releases
  2.     Large developer community, support and discussion forums
  3.     Ability to run on a wide variety of Linux and Unix platforms such as RedHat/CentOS, Ubuntu, and MacOS
  4.     Well documented – up to date with current release

Over the next few weeks, we will specifically talk about these criteria and how each PHP framework did. We will also unveil what we finally chose. Add the Quiver to your bookmarks.