Laravel 8.75 Released

News

December 8th, 2021

laravel8.jpg

The Laravel team released 8.75 with on-demand gate authorization, a fulltext index implementation for PostgreSQL, the ability to filter non-null array values, and the latest changes in the v8.x branch.

On-demand Gate Authorization

@Italo contributed on-demand gate authorization. This change allows the gate to permit or forbid a procedure by a condition, instead of using the gate to register a one-time ability or using verbose checks.

1use Illuminate\Auth\Access\AuthorizationException;
2use App\Models\Wallet;
3 
4// Before
5$wallet = Wallet::find(1);
6 
7if ($wallet->overQuota()) {
8 throw new AuthorizationException("This action exceeds your cuota");
9}
10 
11// After
12$wallet = Wallet::find(1);
13 
14// Forbids an action...
15Gate::forbid($wallet->overQuota(), "This action exceeds your cuota");
16 
17// or permits an action.
18Gate::permit($wallet->underQuota(), "This action exceeds your quota");

Fulltext Index for PostgreSQL

Tobias Petry contributed PostgreSQL support for fulltext search. Currently, it supports a single column. Check out Pull Request #39875 for commentary around this feature and implementation details.

Filter Non-null Array Values

@Saya contributed an Arr::whereNotNull() method which filters out null values from an array:

1Arr::whereNotNull([null, 0, false, '', null, []]);
2// returns [0, false, '', []]

Added Scheduler Integration Tests

Chris Morrell contributed scheduler integration tests, including coverage for scheduled callbacks and scheduled commands. If you want to learn more, check out Pull Request #39862.

Release Notes

You can see the complete list of new features and updates below and the diff between 8.74.0 and 8.75.0 on GitHub. The following release notes are directly from the changelog:

v8.75.0

Added

  • Added Illuminate/Support/Testing/Fakes/NotificationFake::assertSentTimes() (667cca8)
  • Added Conditionable trait to ComponentAttributeBag (#39861)
  • Added scheduler integration tests (#39862)
  • Added on-demand gate authorization (#39789)
  • Added countable interface to eloquent factory sequence (#39907, 1638472a, #39915)
  • Added Fulltext index for PostgreSQL (#39875)
  • Added method filterNulls() to Arr (#39921)

Fixed

  • Fixes AsEncrypted traits not respecting nullable columns (#39848, 4c32bf8)
  • Fixed http client factory class exists bugfix (#39851)
  • Fixed calls to Connection::rollBack() with incorrect case (#39874)
  • Fixed bug where columns would be guarded while filling Eloquent models during unit tests (#39880)
  • Fixed for dropping columns when using MSSQL as database (#39905)

Changed

  • Add proper paging offset when possible to sql server (#39863)
  • Correct pagination message in src/Illuminate/Pagination/resources/views/tailwind.blade.php (#39894)

Filed in:

Paul Redmond

Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.