Laravel World
8.46K subscribers
1.25K photos
25 videos
9 files
2.08K links
Laravel & PHP news
Download Telegram
Совет дня

Если у вас есть отношения $parent->children->children, то, возможно, вам стоит использовать HasManyThrough.
👍2
Совет дня

Как в Laravel проверить в каком окружении вы находитесь
Тейлор предлагает новый способ определения атрибутов «аксессор/мутатор». Напомню, сейчас они используют методы get{Foo}Attribute и set{Foo}Attribute.
Обсудить можно прямо в пулл-реквесте:
https://github.com/laravel/framework/pull/40022
Релиз Laravel 8.76
https://github.com/laravel/framework/releases/tag/v8.76.0

Также зарелизены:
— Laravel 6.20.43
— Breeze 1.6
— Jetstream 2.5
— Lumen 8.3.3
— Octane 1.1
— Sail 1.12.11
— Sanctum 2.13
👍2
Релиз Laravel Health

Новый пакет от Spatie. Монитор работоспособности вашего приложения. Множество встроенных проверок и возможность создавать кастомные.

https://freek.dev/2143-a-laravel-package-to-monitor-the-health-of-your-application
👍1
До релиза Laravel 9 остается всего около месяца.

Что известно о новой версии фреймворка на данный момент:
— минимальные требования: PHP 8+
— анонимные миграции по умолчанию
— подключен Symfony Mailer
— переработанная страница ошибок
— Query Builder Interface
Релиз Composer 2.2
https://blog.packagist.com/composer-2-2/

Минимальные требования увеличены до PHP >=7.2.5. По статистике, менее 10% пользователей композера имеют более старую версию языка.

Увеличена производительность. Заметно уменьшено использование памяти и процессора. В некоторых случаях, до 90%.

Новый параметр конфигурации allow-plugins для повышения безопасности — не позволяет пакетам запускаться во время установки.
https://getcomposer.org/doc/06-config.md#allow-plugins

Напоминаю, что у нас есть дружелюбный Laravel-чат, где можно обсудить наши новости и получить помощь более опытных товарищей. Присоединяйтесь!

@laravel_web
В настоящее время аксессоры и мутаторы добавляются к модели путем определения методов 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
Релиз Laravel Roach
Адаптер для Roach — мощного инструмента веб-скрапинга, аналога питоновского Scrapy.
https://github.com/roach-php/laravel
Если вам нужно промаппить постраничные данные, то используйте метод through, а не map. Map удалит экземпляр пагинации и вернёт коллекцию, в то
время как through работает с самими данными.
👍16
👍6
Создавайте столько угодно дисков. И вместо
Storage::get('/invoices/1.jpg')
используйте
Storage::disk('invoices')->get('1.jpg');
Наглядно и удобно в поддержке.
👍44👎6
Конструктор запросов имеет метод explain(), который позволяет мгновенно получить план выполнения запроса. Полезно при отладке медленных запросов.
👍121
Вместо использования where() в маршрутах, вы можете задать глобальные паттерны в RouteServiceProvider.
👍127👎6
Релиз 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
Maduro сделал новый формат вывода команды route:list в Laravel 9.

https://github.com/laravel/framework/pull/40269
👍183👎5
В Laravel есть несколько интересных скрытых трейтов. Например Conditionable, который позволяет использовать методы when и unless в вашем классе. Методы принимают value, callback и default.
Когда условие when истинно, то будет запущен коллбек и возвращён его результат. Если ложь — то вернёт $this или дефолтное значение, если оно указано.
👍100👎3
В Laravel 8.79 добавят полнотекстовой поиск для MySQL и PostgreSQL. Разумеется предварительно нужно создать соответствующие индексы.
👍107