The Laravel team is proud to announce the release of Laravel 5.3 and it’s now available for everyone. The new features in 5.3 are focused on improving developer speed by adding additional out of the box improvements for common tasks.
This is a general release and comes with six months of bug fixes and security fixes are provided for one year. Laravel 5.1 is the latest LTS release which includes bug fixes for two years and security fixes for three years.
Here is a quick overview of some of the highlights of the new 5.3 release:
New Home Page
The home page received a makeover with boxes showcasing the new packages, and more community resources including links to Laracast, Laravel News, and Statamic.
Laravel Scout is a new driver based full-text search engine for Eloquent. Scout works by adding a new
Searchable trait to your models, syncing your data to the index of choice, and then you can search as easily as:
Laravel Passport is designed to give you everything you need to deploy your own OAuth2 server in a matter of minutes. It’s an optional package that comes complete with the ability to set your scopes, Vue.js components for token generation, revoking tokens, and more.
Laravel Mailable and Notifications
Laravel Mailable is a new class-based approach to sending emails that will allow you to simplify sending email by removing the need for the closure style.
Laravel Notifications allow you to send out quick updates through services like Slack, Text messages, Email, and more. The community has even started a “Laravel Notifications Channel” group where anyone can submit drivers and it already includes over twenty-six drivers.
The migrations system received a new feature that will allow you to rollback a single migration.
php artisan migrate:rollback --step=1
Previously, this option did not exist and you could only rollback a single batch, which could contain multiple steps.
Laravel offers two styles of pagination. An advanced style that shows a list of page numbers and a simple style that only show a previous and next link.
Starting with this release the simple pagination will now be available from a view file which makes it easier than ever to customize to your sites design and HTML structure.
Blade Loop Variable
Laravel Blade received a new
$loop variable that will give you finer grain control within your loops. Now you can use the following properties:
- index – The number of the loop.
- remaining – How many loops remain
- count – The total count
- first – If it’s the first loop
- last – If it’s the last
- depth – How many levels deep you are.
- parent – Allows you to call the parent in a nested loop.
For more on this see Matt Stauffer’s blog post.
The “app” folder was simplified by removing all the empty folders like Events, Jobs, Listeners, and Policies. This remains fully backward compatible and if you run any Artisan “make:” command related to these features the folder will get added back.
Eloquent Collections are now cleanly serialized and re-pulled by queued jobs the same way individual models are.
This is beneficial in the cases where the data in the Eloquent Collection has changed since the job was pushed onto the queue.
The query builder will now return a Collection by default instead of an array. This is potentially a breaking change but it will now keep results from either the query builder or Eloquent uniform.
Laravel 5.3 includes a new
cache() global helper that allows you to
return an instance of the backing service. For more information check out Matt’s post on this.
The documentation received a huge overhaul for this release. It’s now divided into better sections that guides you from installation all the way through Laravel’s official packages. It is also linking to relevant free Laracasts videos on certain topics. This will cater to either people that prefer audio/video for learning and those that enjoy reading.
The official documentation has the upgrade guide which includes all the information you need to start using 5.3 today. It estimates the total time of upgrading at two to three hours.