PHP is a very hated programing language because it is basically a mess of a language. I've been programming for 17 years with PHP and I do confirm that PHP is rather horrible at it's base.
Why do I keep using it then? Because on top of that base, wonderful PHP Frameworks were built which help to allievate the problems caused by the language itself.
I personally worked about 17 years with TYPO3 which I still maintain was the first really good PHP Frameworks (even if also came with a CMS, more on that later), but when TYPO3 declined in popularity in North America, I had to turn to another Framework.
The mistake I made, was to turn to WordPress, which both the most popular and one of the worst ones out there.
Why is that? How can it be horrible and popular at the same time?
How to evaluate a PHP framework/CMS
In my opinion, the popularity of an open source FrameWork/CMS can be traced into three main poles:
- End-User Usability
- Developer Usability
- Quality of the code
In short, pick at most two of them...
TYPO3 picked 2 and 3, and did it very well, at the cost of End-User usability, of which WordPress is most likely number one in the World right on (at least, in the major players).
What makes Laravel so unique, isn't just that they too picked 2 and 3, but how well they succeeded.
Their motto is pretty much "Keeping the developpers happy".
Building applications in Laravel is simple, powerful and pleasant. Artisan, the command line tool bundled with Laravel, is able to automate most of the boring tasks included in a major PHP Framework. It includes powerful Unit Testing features and pre-made modules for authentication, database connection and even simple ways to use the Model/View/Controller design pattern.
But Laravel did all of that without compromising on the quality of the code! They managed to include advanced security features such a cross-site exploit protection and even automatic parameter escaping (TYPO3 did all of that, but WordPress hasn't been really able to keep up).
That's what makes Laravel so important: beautiful powerful code, built to make the developers happy to use it.
But about what End-User Usability?
Simply put, Laravel is a Framework, NOT a CMS, so it doesn't have any End-Users, only the products built from Laravel have End-Users!!!
This Blog, for example, is built wiht October CMS, a Content Management System built from Laravel, but it's not Laravel.. it's BUILT with Laravel.
There are things I don't like with this CMS as a End-user, and all of them were made by the OctoberCMS team and not with by the Laravel team.
In fact, when customizing the blog to my liking, I could easily make the changes to the appearance thanks to Laravel's ease of development. Where I hit a wall, was in October CMS' backend itself which while built in Laravel, isn't build by the Laravel team.
It's no surprise that Laravel became a hit and I hope to be able to build many projects using it.