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, and sum. This lets you write things like $tasks->each->complete() instead of passing a Closure to the each 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.