Друзья на повестке дня самое большое обновление для Livewire со времен версии 2.0!
Практически все обновление было сделано руками сообщества Livewire, что указывает на то что фреймворк набирает обороты и это не может не радовать!
Давайте пройдемся по самым интересным нововведениям данного обновления
Новый lifecycle hook! Метод boot
Новый хук boot() будет выполняться на каждый запрос к Livewire компоненту, в отличии от хука mount() который вызывался единожды при инициализации! Да Livewire не такой уж и live, не смотря на его название, на самом деле он не держит никакого постоянного коннекта с браузером и каждый запрос это ничто иное как старые добрые ajax запросы! И каждый из них будет проходить через хук boot()
Работа с отношениями
Теперь можно работать с отношениями в моделях, что делает Livewire еще более интересным!
Давайте посмотрим пример:
Интерфейс Wireable
Появился новый интерфейс Wireable и если класс его реализует то это позволяет хранить и сохранять любой объект в качестве общедоступного свойства компонента Livewire.
Пример такого класс:
Предупреждение в консоли браузера что в компоненте несколько родительских элементов
Компоненты Livewire могут иметь только ОДИН корневой элемент. Если присутствуют два, Livewire молча не запустить свой компонент, что вызывает большую путаницу для новичков.
Но теперь Livewire обнаружит второй корневой элемент компонента и предупредит пользователя в консоли браузера.
Поддержка нескольких пагинаторов
Ранее разработчики захардкодили параметр page что не позволяло добавлять несколько пагинаторов в компоненте! Теперь же эта проблема исправлена и мы можем указать наименование GET параметра!
Поддержка redirect()->with()
Livewire теперь также поддерживает метод ->with() для редиректор с возможностью передать флэш-данные.
Выглядит это следующим образом:
Поддержка DateTimeImmutable и CarbonImmutable
Livewire добавляет поддержку все большего количества типов PHP, которые будут храниться в качестве общедоступных свойств компонентов. Теперь также поддерживаются DateTimeImmutable и CarbonImmutable.
На этом все! Более детально смотрите на GitHub!
А также детальный обзор обновления на нашем канале