- 👍68
Laravel World

Laravel 9 — Что нового?
Новая версия фреймворка выйдет 8 февраля 2022 года и будет являться LTS (релиз с долгосрочной поддержкой), то есть основная поддержка будет осуществляться в течении 2 лет, а поддержка безопасности в течении 3 лет.
Релиз содержит следующие нововведения и улучшения: поддержка компонентов Symfony 6, Symfony Mailer, Flysystem 3, улучшенный вывод route:list, драйвера Laravel Scout, новый синтаксис аксессор/мутатор Eloquent и различных других исправлений ошибок и улучшений удобства использования.
Рассмотрим подробнее каждое нововведение:
https://laravel.demiart.ru/laravel-9-whats-new/- 👍83
- 👎1
Пре-релиз Laravel Dumper
Улучшенный вывод командdump()anddd().
https://github.com/glhd/laravel-dumper- 👍34
Отображение покрытия кода тестами в Laravel 9:
php artisan test --coverage- 👍77
Релиз Laravel 8.80
https://github.com/laravel/framework/releases/tag/v8.80.0
Из интересного:
— Возможность указывать общий Контроллер для группы маршрутов:
—Новый метод сортировки ключей по колбэку sortKeysUsing():Route::controller(OrderController::class)->group(function () { Route::get('/orders/{id}', 'show'); Route::post('/orders', 'store'); });
— Метод Blade::render() для рендера строк:$sorted = $collection->sortKeysUsing('strnatcasecmp');Blade::render('Hello, {{ $name }}', ['name' => 'Claire']); // Returns 'Hello, Claire' Blade::render('@if($foo) Foo @else Bar @endif', ['foo' => true]); // Returns 'Foo '- 👍64
Вышла обновленная версия Ignition, которая будет дефолтной страницей ошибок в Laravel 9. Но вы можете уже сейчас установить её для своих проектов на Laravel 8.
https://freek.dev/2168-ignition-the-most-beautiful-error-page-for-laravel-and-php-got-a-major-redesign- 👍21
Начата работа над Laravel 10
- 👍104

- 👍10

- 👍76
- 👎10
В Laravel 8.79 добавят полнотекстовой поиск для MySQL и PostgreSQL. Разумеется предварительно нужно создать соответствующие индексы.
- 👍107
В Laravel есть несколько интересных скрытых трейтов. Например
Conditionable, который позволяет использовать методыwhenиunlessв вашем классе. Методы принимаютvalue,callbackиdefault.
Когда условиеwhenистинно, то будет запущен коллбек и возвращён его результат. Если ложь — то вернёт $this или дефолтное значение, если оно указано.- 👍100
- 👎3
Maduro сделал новый формат вывода команды
route:listв Laravel 9.
https://github.com/laravel/framework/pull/40269- 👍183
- 👎5
Релиз Laravel 8.78
https://github.com/laravel/framework/releases/tag/v8.78.0
Также зарелизено:
— Breeze 1.6.1
— Dusk 6.20
— Horizon 5.7.18
— Jetstream 2.5.1
— Octane 1.2.2
— Telescope 4.6.10- 👍28
Вместо использования
where()в маршрутах, вы можете задать глобальные паттерны вRouteServiceProvider.- 👍127
- 👎6
Конструктор запросов имеет метод
explain(), который позволяет мгновенно получить план выполнения запроса. Полезно при отладке медленных запросов.- 👍121
Создавайте столько угодно дисков. И вместо
Storage::get('/invoices/1.jpg')
используйтеStorage::disk('invoices')->get('1.jpg');Наглядно и удобно в поддержке.- 👍44
- 👎6

- 👍6
Если вам нужно промаппить постраничные данные, то используйте метод
through, а неmap.Mapудалит экземпляр пагинации и вернёт коллекцию, в то
время какthroughработает с самими данными.- 👍16
Релиз Laravel Roach
Адаптер для Roach — мощного инструмента веб-скрапинга, аналога питоновского Scrapy.
https://github.com/roach-php/laravel
В настоящее время аксессоры и мутаторы добавляются к модели путем определения методов
get{Foo}Attributeиset{Foo}Attributeна модели. Эти условно названные методы затем используются, когда разработчики пытаются получить доступ к свойству$model->fooна модели.
Новый способ определения поведения доступа к атрибутам / мутации в одном методе, отмеченном типом возвратаIlluminate\Database\Eloquent\Casts\Attribute. В сочетании с “именованными аргументами” PHP 8+, это позволит разработчикам определять поведение доступа и мутации в одном методе с беглым, современным синтаксисом, возвращая экземплярIlluminate\Database\Eloquent\Casts\Attribute.
https://medium.com/@volodymyrafanasiev/новый-способ-записи-гетеров-и-сеттеров-в-laravel-9-2407d248c44f