Laravel 5.5.3 Released
News / updated: September 11, 2017

Laravel 5.5.3 Released

Laravel 5.5.3, was released on September 8th and includes some nice additions and bugfixes. Let’s look at a few highlights, along with the full changelog of what’s new in 5.5.3.

The rescue() Helper

The rescue helper offers a clean way to return a default value on a Throwable exception. From the tests provided in #21010, here’s an example of how it works:

$result = rescue(function () {
    throw new Exception;
}, function () {
    return 'rescued!';
});

// => rescued!

A Route::getAction() parameter

Before Laravel 5.5.3, getting a key from the Route::getAction() method looks like this:

$route->getAction()['controller'];

In 5.5.3 you can now pass a parameter:

$route->getAction('controller');

The JSON Blade Directive

The @json directive can be used to inject PHP data into your templates as JSON.

Previously, you might do something like the following:

<script>
  var example = {!! $json !!};
</script>

I don’t like the syntax highlighting inconsistencies that sometimes ruin your editor syntax theme, or produces a JavaScript syntax error in your IDE like the above example.

To avoid the weird editor/IDE situation, I typically do the following to produce my JSON from a server-side response using addslashes(json_encode($json)) on the server:

<script>
  var example = JSON.parse("{!! $json !!}");
</script>

With the new Blade @json directive you can do something like the following:

<script>
  var example = @json($myData);
</script>

The @json directive is a good option that should provide you more convenience around using JSON in your template.

v5.5.3 Changelog:

Added

  • Added $action parameter to Route::getAction() for simpler access (#20975)
  • Added @json blade directive (#21004)
  • Added rescue() helper (#21010)
  • Support commas in In and NotIn parameters (#21012)
  • Added RedisManager::connections() method (#21014)
  • Added exception class to JSON exceptions (#21043)
  • Added Gate::policies() method (#21036)
  • Added geo spatial blueprint methods (#21056)

Changed

  • Fixed migrations not being run in batch order (#20986)
  • Flush application resources on teardown (#21022)
  • Catch errors while building exception context (#21047)
  • Return $this from Validator::setCustomMessages() (#21046)

Fixed

  • Make Request::validate() return the value of parent key (#20974)
  • Fixed date comparison validators failing when a format is specified (#20940)
  • Fixed login throttling failing when decayMinutes is more than 1 (#20997)
  • Only use reflection on classes in Kernel::load() (#20998)
  • Specify lower case column_name in MySqlGrammar::compileColumnListing() (#21037)
  • Fixed eager loading problem with BelongsToMany (#21044)

Removed

  • Remove unnecessary lcfirst() call in authorizeResource() (#21017)
  • Removed $listensFor from listener stubs (#21039)

Laravel News Partners

Newsletter

Join the weekly newsletter and never miss out on new tips, tutorials, and more.