Guide to 24 PHP Frameworks [Part 2]
Coding (Php 7.x)
Second part of the article "The Definitive Guide to your next PHP framework"
Follow the series ...
This blog post is the second part of "The Definitive Guide to your next PHP framework"
Didn't read it yet?
To have a complete understanding of this topic have a look at The first part of this article and Guide to 24 PHP Frameworks [Part 3]
The following parts will be published during the next couple of weeks or you can
Click the link below to download the full version of the Kindle book "The Definitive Guide to your next PHP framework"
Introduction to the second part
If you have read the first part of this article, by now you should be already confident enough when your colleagues ask you what a framework is and why PHP have so many of them.
If you are new to this topic and you want to scale up your web development skills, or you are a veteran and you would like to explore more choice out there,
below, you will find several others framework's reviews that will let you decide which one to use next.
- Introduction to PHP Frameworks
- Fat Free
- Nette Framework
- Pop PHP
- Smart Framework
- TYPO3 Flow
I need to be honest here, this was my first framework and as they say, you will never forget your first love.
When I was first introduced to an MVC environment from PHP developers using other frameworks,
it was a struggle trying to understand where to put the code, and why there was the need for that extra effort arranging PHP, MySQL, and HTML pages in different parts of the project folder.
Then I discovered CodeIgniter, specifically,
I met the first 4/5 pages of its tutorial.
Suddenly everything became clear and in a couple of hours, I was able to recreate functionalities properly dividing the code by its means and it helped me a lot when I learned more advanced frameworks.
CodeIgniter is quite old being released initially in 2006 but, after being taken in stewardship by the guys at the British Columbia Institute of Technology, it still updates often.
In fact, at the time of my writing, the last version (3.1.8) was released at the end of March 2018.
The most important characteristics are the lightness and the speed at which it process data, for this reason, it is the personal favorite framework of Mr. Lerdorf.
It's the framework that looks less like a framework among the ones described in this post.
One of the best ways to improve your skills is to read the code written by the programmers of these frameworks,
CodeIgniter like most of the frameworks listed on this page makes intensive use of OOP paradigm and array functions, click on the links to learn more about the subject.
As per the other PHP frameworks, even CodeIgniter splits has a clear and easy to understand file structure,
it has a very detailed documentation and lots of users and companies that still use it and can help and provide support.
It is definitely the way to go if you feel ready and you have enough experience with vanilla PHP.
With this framework you are ready to take the step further.
Drupal is not an actual PHP framework, it is more of an advanced CMS or even better, a CMF (Content Management Framework).
Drupal was founded in Belgium by Dries Buytaert, who developed a messaging board to stay in touch with his groups of friends.
Its first domain was drop.org and its popularity increased so quickly that in January 2001, he decided to officially launch the website after changing its name to Drupal.
By the way, Drupal means “drop” in Dutch, from here its logo.
Unlike other popular CMS based on PHP, Drupal requires more time to be fully understood
Having a bigger learning curve, but the response of several developers was that after a while, the flow was very smooth.
It runs on the majority of PHP web servers such as Apache, Nginx and Microsoft IIS.
It also supports the most important databases like MySQL, MariaDB, PostgreSQL, SQLite, Microsoft SQL Server, Oracle, and MongoDB.
The PHP code is arranged in modules, and they can be enabled and disabled depending on the user choices.
The main module that builds the heart of the framework is called core,
This core can be enlarged by installing the extension developed and available on drupal.org.
Right now for example,
there are more than 38000 free modules available, thus everything you need is already there.
Like the back-end, even the front-end could be improved and just like modules, there are several themes that can be enabled.
At least 2.3 % of all the websites on the internet are built using Drupal and the reason for this success is found in a handful of characteristics.
Its reliability, having been founded almost 20 years ago there has been lots of time to improve and create a robust and secure product.
It is also perfect for a wide range of different projects, from websites, blogs, forums to e-commerce and social networks.
They can be scaled out just by adding the necessary modules.
There is also a continually growing community that creates and deploy tons of resources on daily basis.
it is a very good CMS and if you have time to spend learning, it will be time well invested.
Fat-Free PHP Framework
Fat-Free is a micro-framework created by Bong Costa, a Filipino web developer and consultant.
As understandable from the name, the key of a micro-framework is in its size
It consists of only the bare minimum code that allows your project to run without adding any unnecessary structure.
There are multiple advantages in using this kind of skeleton
The weight of the project, in fact, Fat-Free is less than 55kb, and it has a very easy learning curve,
to the developer it means no wasting time learning how things work and put all your time straight on the code.
Fat-Free requires PHP 5.3 or higher and support both SQL and NoSQL databases, it also has an ORM built-in.
Among the key features, it allows routing and has a good template engine connected with the views.
Even though there are good reasons to use a micro-framework,
you have to consider that this could be seen as limitations when the project needs to be scaled or if there is more than one web developer working on it.
Another little limitation is that Fat-Free does not come with a defined structure but you need to create it according to your needs, and this could be intricate if at the beginning.
One of the most interesting (in my opinion) PHP framework available is Fuel.
It was created by several web developers with lots of years working and building PHP frameworks,
Dan Horrigan and Philip Sturgeon (famous for their contribution on CodeIgniter), Among all.
Fuel seemed to be a good mixture between CodeIgniter 3.x and Kohana 2.x taking the best parts and improving each of them.
The result was a very fast structure to work with.
It was designed for having a full support of the Hierarchical Model View Controller principles,
which means that selected code can be used in several pages across the entire project, just think of a shopping cart or blog posts.
Not to forget the presence of the presentation model, also called ViewModels, It basically adds another level between the views and the controllers.
The idea of the file structure of FuelPHP was copied and improved from Kohana, a wise use of namespaces and autoload which allows the calling of class to happen clearly faster than the parents.
It also came with two package pre-installed which are ActiveRecord and Oil, the latter is a very useful command line utility.
FuelPHP has been developed by people that surely know what they are doing and it took one of the best features of Kohana which is its file structure and mixes it with CodeIgniter, which as seen above has been a masterpiece for a decade.
But now, with the release of PHP 7, it starts to feel its age.
The downside of it may be that the community has never grown that much, thus it is very difficult to find the support and answers to question from other developers.
Phil Sturgeon was really kind to reply to my email when I asked for information about this framework.
He said that the peak of the effort of the development team was in the years 2011/2012, and even though the code is still available online, the project was officially abandoned in 2015.
He also linked me to a blog post he wrote, dated January 2011 in which he was introducing Fuel PHP to the world.
I highlighted what I thought as the most important information above but if you want to check his post out, here is the link:
Sturgeon's Introducing to Fuel PHP
Another external reference he sent me was a blog post written by Dwayne Charrington, in which he carefully compared the main characteristics of Fuel and CodeIgniter.
I found it really interesting and I warmly advise you to have a look at this as well.
Unfortunately, at the moment we chatted, Phil he was on vacation.
But as always, he never rests so he gave me a list of several projects he is currently working on.
He is now mainly working at Wework an NY based company.
Among his project you can find:
All of them have repositories on GitHub.
He is creating tooling to help users with API specifications and API interactions in general.
Here is a link to a few articles for whoever wants to learn more about the topic.
Another fascinating framework, at least for its composition is Gyroscope.
Developed by Antradar, it has been around for a while, in fact, its first release is dated to more than 9 years ago.
It supports 5.4 and newest versions of PHP and among its pros, there is the size, which is less than 200 Kilobytes and thus, its speed.
Unlike the previous frameworks we have just seen, Gyroscope uses LCHH architecture and not the more popular MCV.
In this architecture, a div tag with a unique id is populated using previous chosen data.
This data invokes the client that sends an AJAX request to the server side, PHP does its stuff like create, delete, etc, and update the view.
This makes the path equal to an HTTP request which is good for performance and debugging.
Some problem you might encounter if you choose to use Gyroscope is that there is low or no support at all,
the documentation in the official website is out-of-date alongside a community that has never really grown.
My last thought is that if you want to explore more in the PHP world and learn about LCHH, it is fine to give it a shot.
But at the same time be aware that as you can see from this article, there are more advanced choices that could be made.
After publishing this post I have received an email from Schien Dong the author of this framework.
He resulted in an amazingly nice person and kindly proposed to give us some more information about his software:
"The data flow in Gyroscope, due to the use of LCHH, is much simpler than other conventional frameworks.
this makes the framework less "popular" because many developers want to cultivate reusable skills from one framework and jump on to another.
Employability seems to be their primary concern.
For business owners who use Gyroscope applications, it's a very different story.
Gyroscope is at a unique position to deliver the unmatched performance, delivery timeframe and a specialized UI that prevents bad data entry.
That leaves yet another segment of developers who really care about the end product and the fact that they can develop and maintain the code base with relative ease, and not having to always pick up new tools just to stay in stream."
Released in July 2003, Jamroom is another element of the category CMS.
Now in its 6th version, it has been developed by Talldude Networks and comes along a Mozilla Public License.
Jamroom is a very different product from others you are seeing here.
It is composed by a Module architecture that permits the structure to increase or decrease its functionality.
The other part of Jamroom is its skin, they allow changing of the features and look of the website.
Everything inside it is either a module or a skin.
A relevant event is the fact that it has run on Flash until its version number 5, this carried some issues regarding mobile responsiveness.
Nowadays, the problem has been successfully solved and all the multimedia data uploaded is then converted and available in several formats.
Here is another Content Manage Framework.
This is an LGPL licensed project, this means that external developers can enhance the code by adding and improving implementation and features.
Kajona was composed by several scripts in 2004,
The second version was deployed in 2005 immediately followed by the version 2.1 in 2006,
at the moment this CMS is a sound framework arrived at its 6th version.
The system is separated it two main sectors: The back-end is the part used to maintain the website and the portal that is used to show the content.
This portal has built-in in-page edit functionality when hovering on an editable element it is possible to update its content and the result will be seen on the fly.
From a web developer’s point of view, the architecture looks like a normal MVC with the 3 layer well distinct from each other.
Kajona supports MySql, MariaDB, PostgreSQL, Oracle, and SQLite. It also provides a template engine to render the content in the front-end.
To sum up, this is a very solid CMS built in a way that its code can be tweaked and edited in a very smooth way.
It is not mainstream so you will not find a lot of support, but it comes along with a good documentation.
If you need a similar product and you do not want to use WordPress, it is worth giving a shot.
I have already mentioned this framework when I was describing FuelPHP several lines above.
Kohana was, yes I wrote was, a very good and a very unlucky framework.
Its development started on the end of May 2007, from the plan of some CodeIgniter members and its first name was BlueFlame.
The first official version was released a couple of months after, without any documentation.
After several scrambling of the internal team, the second version was released in November of the same year.
At that time it was written in PHP 5.0.
At the moment I am writing version 5.0 looks quite outdated.
I have written an entire series of all the new features and deprecation of version 7.3 of PHP
The third and last version of this PHP framework was released officially on the 9th September 2009, from that moment it has seen a very slow development, until the 25th July 2016, when the last release 3.3.6 was out.
Kohana was formally declared deprecated on the 1st July 2017.
Several intents of revival have been tried, at the moment the closest heir is Koseven.
I have spoken with Chema Garrido,
He is the frontman of Koseven and he said that the framework is a compatible replacement of Kohana,
which allows users that do not want to migrate for Kohana to keep the application bug-less, up to date with thanks to post security fixes and compatible with the latest versions of PHP.
He also advised to use a more modern product, he, like me, is a fan of Laravel,
you will read more about it in the next section.
Here is the showpiece of the list.
From my point of view, Laravel is without any doubt the most interesting framework among all.
Its growth and the list of features are simply unbelievable.
The code that Laravel uses is extremely simple, but as you will see, it does massive use of design patterns, a template engine called Blade and other bespoke characteristics.
If you want to understand it properly without getting frustrated I would advise you to check the basic syntax of PHP before heading to use this framework.
Created by Taylor Otwell as an experiment of improving CodeIgniter, Laravels first release occurred on June 2011.
It wasn't a real MCV because of the lack of controllers but had dozens of internal features such as authentication, sessions, routing, and localization.
Several enhancements were brought by the second version of Laravel, which finally supported controllers, IoC principles and Blade a templating system that permits the developers to better integrate PHP to the view.
Laravel 3 was released on February 2012
and in a certain way it could be considered a small breakthrough.
As the main feature, there was Artisan a brand new CLI (command line interface), plus database migration, events handling and Bundles, a packaging system.
In May 2013 Mr. Otwell released Illuminate, the nickname chosen for Laravel 4.
After previous successful years,
it was completely rewritten and distributed as a package via Composer.
With the fourth version of Laravel, developers could really certify that the project was now growing at the point to be world class.
Among its new features, I can highlight database seeding which allows populating the database since the beginning, support for different kinds of emails, soft deletion, and message queue.
Not to mention the publication of a release scheduled for the minor version.
from this version, there will be a new minor version every six months or so.
Laravel 5 made its appearance in March 2015, hardly leveraging the package methods seen previously.
This version includes Flysystem for remote storage, Elixir that handles package assets, Socialite for authentication and Scheduler for...
At this point, Laravel was already the most popular PHP framework.
The first version of long-term support (LTS) was Laravel 5.1, the plan, then brought again with version 5.5, was to support security and bug fix respectively for two and three years.
At the point of writing this article, Laravel is at version 5.6 that has officially been released on the 7th of February 2018.
Besides the unbelievable high quality and hard work from the creator and the contributors, I think that Laravel changed how web developers write and think about their job.
using a feature like Eloquent ORM (Active Record) presenting database tables as classes make the developing process, thus the life of developers so much easy.
Attending Laracon in either the US or European version is something that most developer has at least once dreamt to do.
Laravel News will keep your and your colleague always informed about what is happening around this framework,
and last but not the least Laracasts with thousands and thousands of minutes of free videos edited by Jeffrey Way and incredible developer former top-mind of Envato tuts+.
As you can see choosing Laravel means choose the entire ecosystem.
Join a big family,
a huge community of developers that even if you do not realize will make your job better in the year to come.
To be continued...
This blog post is the second of the Kindle book "The Definitive Guide to your next PHP framework"
Have a look at
Guide to 24 PHP Frameworks Part 1
to see the introduction to this article and some other framework review and
Guide to 24 PHP Frameworks [Part 3] for other reviews
The following parts will be published during the next couple of weeks or you can
Click the link below to download the full version
Now It's Your Turn
I hope you enjoyed my frameworks' comparison.
The next part will be published soon.
I want to hear from you:
Which PHP framework has intrigued you the most?
Are you going to try one of these listed above?