Laravel 7.14 Released

The Laravel team released v7.14.0 with making component attributes available during render and guessing a file extension based on mime-type, along with the latest features, fixes, and changes in the 7.x branch.

View Attributes Available Within Render Method

Taylor Otwell contributed the ability for view component to return a Closure that takes data attributes as an argument:

Currently $this->attributes is null within a component’s render method. This solves that by allowing components to return a Closure from rendering to defer the template building… which allows you to do some pretty funky stuff.

public function render()
{
    return function ($data) {
        // $data['attributes'];
        // $this->attributes;
    }
}

Guessing a File Extension

Illia Sakovich contributed a File::guessExtension() method “which could be useful in case we want to know the extension of the file which doesn’t have one.”

It guesses the file extension by the mime type:

>>> File::name(public_path('image.png'))
=> "image"
>>> File::extension(public_path('image.png'))
=> "png"
>>> File::guessedExtension(public_path('image.png'))
=> "png"
>>> File::copy(public_path('image.png'), public_path('image'))
=> true
>>> File::name(public_path('image'))
=> "image"
>>> File::extension(public_path('image'))
=> ""
>>> File::guessedExtension(public_path('image'))
=> "png"

Http Client toPsrRequest()

@thomasdominic contributed the toPsrRequest() method which “Allows re-build TransferStats attribute when we use http fake”:

Http::fake([
    'https://external_api.com/403' => function (Request $request) {
        $http_response = Http::response("", 403);
        $http_response->TransferStats = new TransferStats($request->toPsrRequest());
        return $http_response;
    }
]);

MessageBag addIf() Method

Taylor Otwell contributed the addIff() method which conditionally adds a message to a message bag:

$messageBag->addIf(
    someCondition(),
    'name',
    'Example message.'
);

Release Notes

You can see the full list of new features and updates below and the diff between 7.13.0 and 7.14.0 on GitHub.

v7.14.0

Added

  • Views: make attributes available within render method (#32978)
  • Added forceDeleted method to SoftDeletes (#32982)
  • Added Illuminate\Filesystem\Filesystem::guessExtension()method (#33001d26be90)
  • Added Illuminate\Http\Client\Request::toPsrRequest()(#33016)
  • Added Illuminate\Support\MessageBag::addIf()method (50efe09)
  • Provide psr/container-implementation (#33020)
  • Support PHP 8’s reflection API (#330396018c1d)

Fixed

Changed

  • Use new line for route:list middleware (#32993)
  • Disallow generation commands with reserved names (#33037)

Leave a Reply

Your email address will not be published. Required fields are marked *

*