Follow the series …
This blog post is the third part of “The Definitive Guide to your next PHP framework”
Didn’t read it yet?
Introduction to the third part
By now, If you already came across the first two parts of this article, you should master the art of working with PHP frameworks.
Working without stress and coding only what you wantrather than what you need to.
Have you started using PHP frameworks?
It is a nice feeling, isn’t it?
I told you!
Think that we are still halfway through and below there are still plenty of frameworks to discover.
I am sure you will find the one perfect for you
Table of content
As we have seen above,
several frameworks are refactoring version or new project heavily based on other PHP frameworks.
Li₃ is not different.
It was born in October 2009, under the name of Cake3, from the idea of Garrett Woodworth and Nate Abele project manager and developer of CakePHP.
Built for PHP 5.3 onwards, Li₃ claims to be one of the first frameworks to bring to the hand of web developers break ground technologies.
This project has also managed to gain several important sponsorships like Engine Yard (PaaS based in San Francisco), Ratify and Atelier Disko.
Among its more relevant technologies,
I have to mention its API,
maybe the first to include support for relational and non-relational databases together, and its class structure.
they made of flexibility its battle horse
the structure of the class allows you to organize your project or replace and override the built-in classes in a very easy way.
Its use of closures and anonymous functions also allow the developer to bind method calls.
Li₃ include MySql, MongoDB, CouchDB, and Redis,
with support for Cassandra and ElasticSearch as well as PHP ActiveRecords and Doctrine 2.
When I asked to Mr. Nate Abele Founder & CEO of Radify
(a tech company that builds automated software and chief developer of Li₃)
what does he think about the framework and how to choose the best he gave me a very funny quote:
”That’s like asking what’s the best food. Different frameworks are for different types of apps and different ways of thinking about problems.
There’s certainly some overlap, but I don’t think one could argue that a single one out of all of them is best.”
Li₃ is, without doubt, a good framework, it seems to have a quite big community around it,
as per other frameworks you need to step into and see if you like it from your own experience.
Created by David Grudi and then further developed by a big team,
Nette is not to be considered a framework but as a combination of different services.
Latte, a high-tech template language, definitely beats Smarty/Twig;
DI a proprietary dependency container;
Tester a PHP unit testing suite;
Tracy a debugging tool and;
Dependency Injection a PHP container for services and of course the open-source framework.
The framework itself is also divided into small packages, you can find:
Each package has its own release cycle and it’s released when needed.
With these packages, you can build nearly everything, API, personal site, and medium project.
Nette itself is a great framework for building anything because it has a really cool architecture.
You can switch every part of its system to a different one.
For example DB, you can easily use Doctrine or there is an active record layer called Nette Database.
If you would like to create API on PSR-7, you can!
The team developed a lot of projects on PSR-7 even if Nette is not PSR-7 compatible.
It is an MVC framework that supports PHP 5 and PHP 7.
Making of the DRY (Don’t Repeat Yourself) and KISS (Keep It Simple, Stupid) programming principles its core features
it is an easy-to-use and fast PHP framework.
As per others, even Nette has a BSD license which imposes minimal restrictions and increases the opportunity for developers to improve the quality of the code within.
Nette Framework (I mean all packages together) is current in 2.4 mainline.
Previous versions are 2.3, 2.2, 2.1, and 2.0.
At the moment, the team is preparing Nette 3.0 with full (PHP 7.1) support.
But, as said, all Nette packages are PHP 7.2 compatible.
the whole Nette team has about 6 people and it seems to be deeply used in all the East Europe being voted as the third most used framework of 2015 from a SitePoint survey.
even with the presence of very good docs, there isn’t a lot to say about this framework.
But it is clear that the team behind is trying to increase the quality of the product and all its surroundings, Its open-source license is helping a lot with it.
Like I advised for the others, you need to put your hands into it in order to understand if Nette is a framework that is right for you.
I had the opportunity to chat with two of the most prominent persons within the Nette community, their names are Tomáš Votruba and Milan Šulc.
Just looking at the impressive number of contributions they had on the GitHub projects you will understand that you are talking with someone that knows their stuff.
Since the limited amount of new features released from Nette in the last 2 years, Tomáš is spending most of his time working on Symfony and writing for his blog.
An amazing post he wanted to share with us regarding this topic is a comparison among his preferred 3 frameworks;
Milan’s main goal was to improve the documentation, it is written in either Czech or English.
His contributions to this section were huge.
He highlighted the growth that the Nette community is having, especially in the Czech Republic where the team organizes a meet up on a monthly basis called PoSobota,
and once a year they gather on a summer “NetteCamp” in which they code and drink (not sure about the percentage of them).
It is easy to understand the aim of a product when you see one, and it’s even easier to see it when it is so highlighted.
Phalcon’s first and most important purpose is speed.
Andres Gutierrez, the developer started this project by taking a completely different path from the others.
Phalcon PHP is a web server extension and it is written with a lower level programming language like C and Zephir,
which provides the ability to create it in higher level language and compiled into PHP.
This process simplifies the development reducing the time for coding.
Phalcon PHP in its beta version (called Spark), was released in 2011.
The first version instead is dated November 2012.
In here, there was included a very fast ORM, cache element and its fundamental code was following the MVC pattern.
With the following version, other features were announced such us PHQL, which is a dialect of MySql that speed up the queries and request to the database and Volt a template engine.
The first version of Phalcon that supported LTS is the 3.0.0 that inter alia supports PHP 7.
A remarkable side project that arrived from the Phalcon team is Phalcon Slayer,
a wrapper that reconstructs the framework supporting Composer.
As declared by the team and emphasized in the official website,
this framework is focused on velocity and as result it is one of the faster, if not the fastest PHP framework among all.
Nick Sagona is a New Orleans LA lead developer that came up with the idea of refactoring several old PHP libraries and putting together an open-source project.
The first version of Pop PHP was released the 19 March 2012.
The focal point of his effort was to merge these libraries in an MVC set of components in order to create a web application in an easy way.
The second version, not supported anymore but still available, was released in July 2015 and developed to take advance of PHP 5.4 and the use of Composer.
Version 3 released one year later had some update from the previous version and was written to support the new features implemented in PHP 7 and PHP 5.6.
The last version now available from the official website and GitHub is the 3.6.5.
This is a very good product,
it was counted several times among the best PHP framework and it currently includes most of the features accessible by much bigger frameworks.
Routing, service locators, an event manager, form generators, automated emails, a PDF generator, caching, debugging, logging.
And to this list,
I need to add Popcorn, a REST-based micro framework for deploying quick web applications.
Nick was so kind to answer my questions about Pop PHP,
what he said was that the project started with a small library of components that he wrote to handle the website and apps he was developing back then.
And it grew pretty quickly from there, based on expanded needs as well as keeping tabs on trends and standards in the industry.
He surely has put a lot of personal time into it, but he added that he would love if he could have more time to market or promote this framework a little bit more.
Sometimes, projects start on the wrong foot and there is very little that you can do.
Prado seems to be one of them.
This project was first started by Qiang Xue, a Chinese software engineer with plenty of experience in open-source software.
This framework came alive by taking Asp.net and Delphi as inspirations.
The first release of this product was released in June 2004 and it was written in PHP 4.
For this reason, the quality of this version was very restricted and originated some issues.
Qiang refactored it using the more modern PHP 5 and with the new version, he was able to win the Zend PHP coding contest in 2004, gaining votes from public and judges panel.
In May 2005, the team of developers decided to rewrite the framework from scratch again to fix few problems found in the second version.
From version 3 upwards this project became much more stable,
its code was moved to Google code before and GitHub after and this moving results in more contributors able to fix the problems, thus a better product.
In October 2008, the development team released Yii, a PHP framework that succeeds Prado leaving the concept of page/events and focuses on an MVC design pattern.
Nowadays, a good amount of people are still supplying help and develop new features even though the majority of the work is now focused on Yii which I will describe in the next episode (so subscribe to my newsletter to get notified when it is published).
Fabien Potencier is the creator of Symfony as you will see later in this article, as one of the best and most popular PHP frameworks in this list.
Silex shares the same creator of Symfony and firstly released in the last quarter of 2010, is now at version 2.0.
Silex is a micro-framework heavily based on Symfony, it is mainly used to create small web applications and REST APIs.
Silex is available in two different types;
The slim, which has only a basic routing engine, a built-in security function, sessions and cookies handlers and some other minor features but is extremely fast and ready-to-go.
The second version is called fat, and as the name suggests, it is the packed version of the two.
It includes Twig, a template engine, Doctrine a database abstraction, and other features taken over from the mother framework Symfony.
At the moment, Silex is known as one of the best and fastest micro-framework as several benchmarks comparison demonstrated over the past few years.
If you need to build a very small application or an API, spending some time learning Silex is a wise choice.
The final result will be excellent and you will start to get to know the basics of Symfony, which is good if you want to scale up your application.
Here is another item that belongs to the CMS category, an open source software under BSD license.
SilverStripe can be considered both a CMS because of its administration panel that permits the user to edit parts of the website and the so-called core the PHP SilverStripe Framework,
The software was first developed almost 20 years ago by SilverStripe Limited, a web company initially based in New Zealand and Australia.
The development of the second version that leverages some of the new characteristics of PHP 5 was started in late 2005 and eventually released on the 3rd of February 2007.
A huge milestone was hit in 2010 when the software was downloaded 250000 times.
SilverStripe 3.0 and 3.1 were released in June 2012 and October 2013 and now supporting API usability, Composer, YAML and improved the uploader feature.
A big difference from other CMS is the clear separation between the authors that are in charge of creating content and the developers/designers that have to change the structure of the website.
This highlighted separation gives an easy-to-use interface to the authors and provides more flexibility to web developers at the same time.
Technically is a good software developed in PHP5.3 using Object Oriented design, It follows the MVC pattern and Object-relational mapper.
Among its features, you can see a bespoke version of TinyMCE, SEO friendly URL, support for UTF-8 and internationalization as well as hundreds of modules, widgets, and themes that can be used to extend the core of the application.
SilverStripe is a very good CMS that can be used and edited as a proper framework,
Throughout the years, this has earned trust, thanks to the good quality of its code and the several prices they have won.
Do not miss the next episode…
This blog post is the third part of the Kindle book “The Definitive Guide to your next PHP framework”
to see the introduction to this article and some other framework’s reviews
The last parts will be published during the next couple of weeks or you can.
Now It’s Your Turn
I hope you enjoyed my frameworks’ comparison so far.
The next part will be published soon.
I want to hear from you:
As you have seen there are plenty of PHP frameworks out there. Which one are you going to try first?