Laravel 8.64 Released
Published on by Paul Redmond
The Laravel team released 8.64 with an @aware blade directive to access parent component data and the latest changes in the v8.x branch.
🔥 Laravel 8.64.0 ships today with support for a new "@aware" Blade directive that allows child components to easily access parent component data when needed.
— Taylor Otwell 🪐 (@taylorotwell) October 12, 2021
📚 Check out the example in the docs: https://t.co/QzoQ1juzxQ
The @aware Blade Directive
The new @aware
directive allows child components to easily access parent component data when needed:
<!-- Example usage --><x-menu color="purple"> <x-menu.item>...</x-menu.item> <x-menu.item>...</x-menu.item></x-menu> <!--Implementation/resources/views/components/menu/index.blade.php--> @aware(['color' => 'gray']) <li {{ $attributes->merge(['class' => 'text-'.$color.'-800']) }}> {{ $slot }}</li>
You can learn more about accessing parent data in the Laravel Blade documentation.
Strip Tags Stringable Method
Craig Anderson contributed a stripTags()
Stringable method to use PHP's strip_tags()
as part of a fluent string chain:
Str::of('<strong>before<strong><br />after')->stripTags();
Language Path Helper Function
Rodolfo Ruiz contributed a lang_path()
helper that will look for the lang
directory in both the resources
path and a top-level lang
folder in the root of a Laravel project:
// PROJECT_DIR/resources/lang or PROJECT_DIR/lang$langPath = lang_path(); // PROJECT_DIR/resources/lang/es or PROJECT_DIR/lang/es$langPath = lang_path('es'); // PROJECT_DIR/resources/lang/en or PROJECT_DIR/lang/en$langPath = lang_path('en');
A "throw if" HTTP Client Method
Ahmad Mayahi contributed a throwIf()
method that accepts a boolean to only throw an exception if the value passed is true
:
$response ->json() ->throwIf(App::isProduction);
Collections "has any" Method
Craig Anderson contributed a hasAny()
method to collections, which will return a boolean if the collection contains any of the passed values:
// returns `true`collect(['first' => 'Hello', 'second' => 'World']) ->hasAny(['first', 'fourth']); // returns `false`collect(['first' => 'Hello', 'second' => 'World']) ->hasAny(['third', 'fourth']);
Release Notes
You can see the complete list of new features and updates below and the diff between 8.63.0 and 8.64.0 on GitHub. The following release notes are directly from the changelog:
v8.64.0
Added
- Added reduceMany to Collections (#39078)
- Added
Illuminate/Support/Stringable::stripTags()
(#39098) - Added
Illuminate/Console/OutputStyle::getOutput()
(#39099) - Added
lang_path
helper function (#39103) - Added @aware blade directive (#39100)
- New JobRetrying event dispatched (#39097)
- Added throwIf method in Client Response (#39148)
- Added Illuminate/Collections/Collection::hasAny() (#39155)
Fixed
- Fixed route groups with no prefix on PHP 8.1 (#39115)
- Fixed code locating Bearer token in InteractsWithInput (#39150)