News

Laravel 5.5.3 Released

Published
Laravel 5.5.3 Released image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

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)
Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article