Laravel World
8.46K subscribers
1.26K photos
25 videos
9 files
2.09K links
Laravel & PHP news
Download Telegram
Что нового в Laravel Collections

Расскажем о новом функционале Коллекций, появившемся в минорных версиях, со времени выхода Laravel 8.0.

https://laravel.demiart.ru/collections-new-features/
This media is not supported in your browser
VIEW IN TELEGRAM
Грядущие Коллекции из Laravel 9 уже поддерживаются в PHPStorm 2021.3
Релиз Laravel 8.75

— Полнотекстовые индексы в миграциях
$table->text('article')->fulltext();

— Дополнительные методы проверки авторизации allowIf и denyIf
Gate::allowIf(fn ($user) => $user->canDoSomething());

— Стабильный релиз каркаса Laravel Breeze + Next.js
https://laravel.com/docs/8.x/starter-kits#breeze-and-next
Также зарелизены:

Laravel 6.20.42, 7.30.6
Breeze 1.5
Fortify 1.8.5
Horizon 5.7.17
Lumen 8.3.2
Passport 10.2.1
Sail 1.12.10
Socialite 5.2.6
Telescope 4.6.9
Tinker 2.6.3
Совет дня

Laravel позволяет легко проверить, заполнено ли определенное поле в запросе и, в зависимости от результата, выполнить ту или иную операцию.
👍2
Релиз Filament Admin Panel 2

— Новый дизайн
— Группировки боковой панели
— Глобальный поиск
— Статистика и Графики
— Интегрирована Spatie MediaLibrary
— Доступны новые возможности Filament Form Builder и Table Builder

Требования: PHP 8.0+, Laravel 8.0+, Livewire 2.0+.

https://filamentadmin.com/docs/2.x/admin/installation
👍1
Совет дня

Если у вас есть отношения $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