Laravel 7.14 Released
Published on by Paul Redmond
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 aClosure
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 toSoftDeletes
(#32982) - Added
Illuminate\Filesystem\Filesystem::guessExtension()
method (#33001, d26be90) - 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 (#33039, 6018c1d)
Fixed
- Restore
app()->getCached*Path()
absolute ‘/’ behavior in Windows (#32969) - Fixed Issue with using “sticky” option with Postgresql driver and read/write connections. (#32973)
- Fixed custom class cast with dates (2d52abc)
- Fixed
Illuminate\Database\Eloquent\Collection::getQueueableRelations()
(00e9ed7) - Fixed bug with update existing pivot and polymorphic many to many (684208b)
- Fixed localization in tailwind view (f2eb9ab)