In the very early days of web, developing web applications looked a lot different than it is today. Developers then, not only have to write code for just business logic of their applications. But they have to develop simpler API’s & components for each of their project separately like User Authentication, templates, Database connections, User validations etc.
Today, programmers have dozens of programming frameworks available to work on with tons of useful libraries and components which comes along with those web frameworks.
Frameworks like Laravel, Symphony, CakePHP, Silex, Lumen, which are pre-packaged with several third-party components and libraries with pre-defined directory structures, one time configurable files, application bootstraps, extendable Service providers, and powerful routing.
Check why do you need to use a Framework for more understanding.
CodeIgniter is one of PHP’s framework which was inspired by Rails and was quickly rose to fame by 2010. It was arguably the most popular of the independent PHP frameworks. CodeIgniter was easy, simpler, has an amazing documentation and a strong community. But it lacked behind in keeping up the pace with the advanced technologies & patterns. As the world of frameworks grew, CodeIgniter started falling behind in terms of both technological advances & out of the box features.
With the release of PHP 5.3, CodeIgniter failed to gear up their code-base and unable to sync with the really cool newer features like namespaces, closures & the use of composer.
It was 2010, when unsatisfied Taylor Otwell, Laravel’s creator felt the need for a better framework and set off by writing his own from scratch.
Laravel initial releases moved so quickly and Laravel version 1, 2 and 3 were released in less than a year frame. Laravel’s first beta release was version 1 and it was released back in 2011 & it was written completely from scratch. It features a custom ORM (Eloquent), PHP 5.3’s closure-based routing (inspired by Ruby Sinatra), a module system for extensions, useful helpers for forms, validations, authentication and more.
Laravel 2 & 3 were release back to back with a couple of months gap in November 2011 and February 2012 respectively. They introduced Controllers, unit testing, Artisan CLI Tool, IoC container, Eloquent relationships and the beautiful concept of migrations.
With Laravel 4, Taylor Otwell rewrote the entire framework from ground up by utilizing composer as its dependency manager. Which was release in May, 2013.
Taylor developed a set of components under the repository named ‘Illuminate’. Instead of bundling the majority of its code as a download, Laravel now pulled in the majority of its components from Symphony & other Taylor’s illuminate components through composer.
Laravel 4 introduces queues, mail component, facades & database seeding.
Laravel 4.3 was set to release in November 2014, but as development of the framework progressed, it was clear that the significance of the changes requires a major release. So, in February 2015, Laravel 5 was released.
Laravel 5 featured a revamped directory structure, Form & HTML helpers were moved out (could be downloaded from Illuminate repository), introduced the contract interfaces, a cluster of new views, Socialite for social media authentication, elixr for Assets management, form requests & a first of its kind REPL (read – evaluate – print loop).
With Laravel 5.3’s 6 months of bug fixes and 1 year of security from Aug 2016, Taylor released Laravel’s version 5.4 in Jan 2017, and is currently the Laravel’s stable release.
Laravel 5.5 is scheduled to be released next month i.e. July 2017 & will be the next major release. It will require PHP 7.0+ to run the application. Other important features include the Package Auto Discovery (learn more about it), PHP Whoops, more custom validator rules, more yet useful Helpers, Support for Email themes in Mailables and many more.
So, If you’re a beginner & want to dive into the MVC world, then Laravel is your answer. Give it a try and I assure you’ll not regret it.
If you have any questions, do comment below. If you like my blog then you can also follow me on Twitter.