What to expect from Laravel in 2017
The release of version 5.4 of the Laravel Framework is expected to be released in the next few weeks. Some exiting new features, enhancements and changes are coming! Here's a short overview of what to expect.
New features
- Laravel Dusk, which provides an expressive, easy-to-use browser automation and testing API. Check out the Github repository for an introduction. It is still in alpha and the documentation not yet complete.
- On-the-fly facades.
- Support for Components and Slots in Blade, in addition to sections and layouts.
- Support for Markdown in Mailable and Notification classes.
- Support for storing translations in JSON files.
- Operator support in the
contains
method of the Collection class. For example:$users->contains('age', '>=', 18)
. - A new
every
method on the Collection class that returns a boolean wether every item passes the given test. - A
retry
helper method that accepts a Closure and lets you specify the number of attempts and the interval between the attempts.
Enhancements
- Route Caching performance has been improved.
-
Higher Order messages for Collections. Supported methods are
contains
,each
,every
,filter
,first
,map
,partition
,reject
,sortBy
,sortByDesc
, andsum
. This lets you write things like$tasks->each->complete()
instead of passing a Closure to theeach
method. - Easier localization by using translation strings as keys.
- Specifying the timeout and the number of attempts of a Job in the class itself.
- Bind how methods should be called when using the container.
- Route model binding on broadcast channels.
- Fluent routes, for example:
Route::middleware('auth')->namespace($this->namespace)->prefix('api')->group(...)
. - Improved Redis cluster support.
- Lots of refactoring and even better documentation.
Changes
- Laravel Elixir will be renamed to Laravel Mix. It's a rewrite of the project and is now based on Webpack instead of Gulp.
- The
tinker
Artisan command is no longer included by default but is now an optional package.
The release of Laravel 5.5 is expected in July and will require PHP 7.0 or higher. Just like 5.1 it was supposed to be a LTS-release but that's probably not going to happen. Much more information about 5.5 is not available yet. Furthermore, there is a new UI coming to Laravel Forge as well as an official API.