What's New in Laravel 5.4

It's that time of year again! Laravel is on the cusp of graduating to version 5.4. Along with it comes a variety of excellent new optimizations and features. Markdown mail, higher order collection messages, Dusk, real-time facades... yes, please! In this series, I'll get you up to speed on what's new in Laravel 5.4 as quickly as possible.

Start Series

Share this series on:

  • 01

    Episode 1 Run Time 1:44

    Sanitizing Middleware Free

    First up for this series is a review of two new middleware that are included with Laravel out of the box: TrimStrings and ConvertEmptyStringsToNull. In effect, for every form request, Laravel will automatically trim any white space, while also converting all empty request fields to null.
  • 02

    Episode 2 Run Time 2:41

    Higher Order Collection Messages Free

    Laravel 5.4 includes support for higher order messaging, which is a fancy term that essentially breaks down to "collection shortcuts." What if, rather than filtering a collection, passing a closure, and returning some data, you could simply type: $collection->filter->isArchived()? How cool is that? I'll show you how it all works in this episode.
  • 03

    Episode 3 Run Time 4:56

    Laravel Mix in a Nutshell Free

    As part of Laravel 5.4, Laravel Elixir has been upgraded and renamed to Laravel Mix. While both versions will continue to exist, Mix should be your build tool wrapper of choice. It's built on Webpack, and provides nearly the exact same friendly API that you're already used to.

  • 04

    Episode 4 Run Time 1:07

    Fluent Routing Free

    Laravel 5.4's routing component has been upgraded to support a more fluent routing syntax. No longer are you required to reference an array of awkward options, should you require a route group, prefix, or name.
  • 05

    Episode 5 Run Time 1:32

    Resourceful Controllers With Model Boilerplate Free

    When generating a controller from the command line (php artisan make:controller), you'll now find a new --model flag. When called with the name of a model, Laravel will automatically generate a resourceful controller that includes the necessary boilerplate to inject this model in all relevant controller actions.
  • 06

    Episode 6 Run Time 5:19

    Blade Components and Slots Free

    In Laravel 5.4, Blade offers a new @component directive. With this new addition, you may now, where relevant, think in terms of components and slots (much like Vue's implementation). Define a view partial, reference any necessary variables, and then call this component from any other view. It's probably best if I simply show you!
  • 07

    Episode 7 Run Time 4:25

    Markdown Mailables Free

    When sending email, you may combine Markdown with Blade components to provide maximum flexibility. You're going to love this. Let's review the entire workflow, while using as our test server to review each compiled email.
  • 08

    Episode 8 Run Time 2:29

    Real-Time Facades Free

    By now, you're surely well aware that Laravel offers facades, which offer a simple, static interface to objects in your service container. In the past however, should we have needed to create our own facades, we were required to manually construct each relevant facade. Not anymore! Laravel 5.4 can do it on-demand for you. This is insanely cool, and will annoy countless onlookers. So they're definitely worth a look.
  • 09

    Episode 9 Run Time 3:00

    Browser Testing With Laravel Dusk Free

    Laravel Dusk is a brand new first-party package that drastically simplifies the process of performing tests against an actual browser. As such, it can be used to test all forms of behavior and JavaScript interaction. In this episode, I'll give you the quick rundown; however, I do encourage you to watch "How I Personally Learn: Dusk Edition" for a slower dive into what this new testing package can do for you.
  • 10

    Episode 10 Run Time 3:41

    Map Eloquent Events to Dedicated Classes Free

    As part of Laravel 5.4, you may now map any Eloquent events (created, saved, deleted, etc.) to dedicated event classes. You'll find that this method cleans up your model code significantly.