Ein Beispiel im Video zu den Neuerung in Laravel 7 mit dem Titel “Supercharged Blade Components” von Jeffrey ist, wie auch in den Kommentaren festgestellt wird, in Minute 3:30 nicht ganz nachvollziehbar.

Folgender Code wird (von mir gekürzt) dargestellt:

// File: resources/views/welcome.blade.php
<x-layout>
  <x-slot name="Foobar>
    Foobar Inhalt
  </x-slot>

Inhalt hier
</x-layout>

Daneben gibt es noch ein Components, welcher entsprechend der Defintion <x-layout> auch layouts.blade.php heißen muss:

// File: resources/views/components/layout.blade.php
@if(isset($Foobar))
  Standard-Inhalt
@endif

<div>
{{$slot}}
</div>

Auf den ersten Blick würde man jetzt erwarten, dass “Foobar Inhalt” ausgegeben wird. Dem ist jedoch nicht so, da die definierte Variable $Foobar zwar abgefragt, aber nicht ausgegeben wird. Damit “Foobar Inhalt” angezeigt wird, müßte im layout.blade.php-Components folgendes angepasst werden:

// File: resources/views/components/layout.blade.php
// Old-Version
@if(isset($Foobar))
  Standard-Inhalt
@endif

// New-Version
@if(isset($Foobar))
  $Foobar
@endif

Siehe hierzu auch die offizielle Dokumentation von 5.4

Viel interessanter finde ich jetzt jedoch, dass sich die Components jetzt auch verschachteln lassen. Man kann jetzt also auch folgendes machen:

// File: resources/views/welcome.blade.php
<x-layout>
  <x-slot name="Foobar>
    <x-Foobar variable="wert"/>
  </x-slot>

Inhalt hier
</x-layout>

Somit hat man die Möglichkeit einen Standard-Wert in der jeweiligen Component zu hinterlegen und diesen bei Bedarf in der View zu aktivieren bzw. auch die Möglichkeit den zu überschreiben und ggf. durch eine andere Component zu ersetzen.

Unabhängig davon, kann ich die Videos von Jeff jedem der sich mit Laravel beschäftigt wärmstens empfehlen!