Laravel 5.5.3 Released
Published on by Paul Redmond
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 toRoute::getAction()
for simpler access (#20975) - Added
@json
blade directive (#21004) - Added
rescue()
helper (#21010) - Support commas in
In
andNotIn
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
fromValidator::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 than1
(#20997) - Only use reflection on classes in
Kernel::load()
(#20998) - Specify lower case
column_name
inMySqlGrammar::compileColumnListing()
(#21037) - Fixed eager loading problem with
BelongsToMany
(#21044)