Laravel World
8.5K subscribers
1.21K photos
25 videos
9 files
2.04K links
Laravel & PHP news

contact: @okkultax
Download Telegram
Релиз Laravel 8.62
Множество изменений, накопившихся за две недели.
https://github.com/laravel/framework/releases/tag/v8.62.0

Из основного:

— новый метод $request->collect() для получения данных из входящего запроса в виде коллекции.
https://laravel.com/docs/8.x/requests#retrieving-input

— анонимные index компоненты для сбора всех компонентов шаблона в одном каталоге.
https://laravel.com/docs/8.x/blade#anonymous-index-components

— резервные шаблоны 4xx.blade.php (ошибки клиента) и 5xx.blade.php (ошибки сервера) для серий кодов состояний HTTP, если не существует соответствующей страницы для определенного кода.
https://laravel.com/docs/8.x/errors#fallback-http-error-pages
Ресурсы для API в Laravel

Вы узнаете, что такое Ресурсы и как их использовать для API в Laravel-приложениях.

Ресурсы (Resources) — дополнительный слой поверх Eloquent-моделей. Они позволяют поддерживать единый формат возвращаемых данных. Плюс позволяют отсекать лишние или секретные данные, например, пароли и токены.

https://laravel.demiart.ru/laravel-resources/
Начиная с этой недели, у новых Laravel-приложений в базовом классе TestCase будет трейт LazilyRefreshDatabase.

И теперь вам больше не нужно использовать трейт RefreshDatabase в ваших тестах.

Новый трейт будет «лениво» обновлять базу данных, когда тест в первый раз пытается к ней обратится.

Существующие приложения могут по желанию добавить этот трейт в свой базовый тестовый класс.
Релиз Xdebug 3.1
Добавлена поддержка PHP 8.1. Добавлены функции сжатия файлов для трассировки и профилирования. Новые функции xdebug_notify() и xdebug_connect_to_client() и xdebug_info().
Полный список всех изменений: https://xdebug.org/updates#x_3_1_0
Релиз Laravel 8.63
https://github.com/laravel/framework/releases/tag/v8.63.0

Обратите внимание на новый метод whereBelongsTo(), который автоматически определяет правильные отношения и внешний ключ для указанной модели:
$posts = Post::whereBelongsTo($user)->get();
https://laravel.com/docs/8.x/eloquent-relationships#querying-belongs-to-relationships
Еще небольшое разъяснение от Дэна Харрина, автора нового метода whereBelongsTo() в Laravel 8.63, как его можно использовать:
Совет дня от Anwar
Метод Route::is('route-name') легко подсветит активную вкладку в вашей навигационной панели
Либо используйте blade-директиву class из восьмой версии Laravel
Релиз Laravel 8.64
https://github.com/laravel/framework/releases/tag/v8.64.0

Новая blade-директива aware для доступа из дочернего компонента к данным родительского
https://laravel.com/docs/8.x/blade#accessing-parent-data
А вы знали, что в DateTime можно использовать восклицательный знак для сброса неуказанных единиц времени? 😲
На следующей неделе выйдет версия Laravel, в которой будет возможность, в команде artisan make использовать опции --test или --pest для генерации, соответственно, phpunit и pestphp тестов.
https://github.com/laravel/framework/pull/38997
Релиз Laravel 8.65

Из интересного: новый метод Str::headline() для вывода красивых заголовков из слагов, названий классов и тому подобного. Примеры на картинке.

также зарелизены:
Laravel 6.20.36
Cashier Stripe 13.5.5
Dusk 6.19.1
Lumen 8.3.1
Passport 10.1.4
Sanctum 2.12
Релиз Laravel 8.68
Из интересного: методы dump, dumpHeaders, dumpSession и dd, ddHeaders, ddSession оптимизированы для отладки тестовых ответов.
Также теперь не обязательно указывать модель в Фабрике . В большинстве случаев Laravel понимает, что нужно использовать.
https://laravel.com/docs/8.x/http-tests#debugging-responses
The case for route attributes
Брент рассказывает о новом способе маршрутизации в Laravel, с помощью атрибутов из PHP 8.
https://stitcher.io/blog/route-attributes
Как обновить большие массивы данных в Laravel
О всех хитрости и тонкостях (чанки, прогрессбар, транзакции) рассказывает Макс Хутшенрайтер.
https://42coders.com/how-to-update-large-data-in-laravel
На следующей неделе в Laravel 8 появится приведение атрибутов к enum. Но будет работать, разумеется, только начиная с PHP 8.1, в котором и появилась их реализация.

Кстати, начиная с версии 8.67, вышедшей на днях, фреймворк полностью работоспособен на PHP 8.1
Чтобы записать и модель и соответствующее отношение, используйте метод push().
Релиз PHPStan 1.0
Статический анализатор PHP, ориентированный на поиск ошибок в вашем коде, без его запуска. Спустя 5 лет разработки и множество 0.xx версий, автор наконец-то решился выпустить Первую версию.
Основная фишка релиза — добавлен максимальный девятый уровень строгости проверки.
https://phpstan.org/blog/phpstan-1-0-released

Заодно с ним зарелизился Larastan 1.0.0 — обёртка над PHPStan для Laravel.
Релиз Laravel 8.69
Поддержка вышеупомянутых Enum, маскирование строк и приведение к Stringable.