Never Miss a Laravel Release 🚀
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
$actionparameter toRoute::getAction()for simpler access (#20975) - Added
@jsonblade directive (#21004) - Added
rescue()helper (#21010) - Support commas in
InandNotInparameters (#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
$thisfromValidator::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
decayMinutesis more than1(#20997) - Only use reflection on classes in
Kernel::load()(#20998) - Specify lower case
column_nameinMySqlGrammar::compileColumnListing()(#21037) - Fixed eager loading problem with
BelongsToMany(#21044)