Laravel World
8.47K subscribers
1.25K photos
25 videos
9 files
2.08K links
Laravel & PHP news
Download Telegram
Пример качественного Laravel приложения
от Алексея Мезенина
https://github.com/alexeymezenin/laravel-realworld-example-app

Автор известен по крайне полезному проекту Laravel Best Practices.

«Высасывать идею для приложения из пальца не стал, решил присоединиться к довольно интересному проекту RealWorld. Проект состоит из сотни приложений, написанных на самых разных языках и фреймворках, причем вы можете менять фронтенд и бэкенд и получить точно такой же функционал. Мой пример следует лучшим практикам, но сделать все согласно Laravel Way не получилось из-за довольно специфичного ТЗ. Буду благодарен за звезды. Если у вас есть вопросы по поводу организации кода, практик, решений и пр., задавайте.»
Паттерн Action-Domain-Responder

Является усовершенствованием паттерна Model-View-Controller и более удобен для создания веб-приложений.

Большинство фреймворков на данный момент использует MVC. Впервые он был представлен в 70-х годах и предназначался для разработки десктопных приложений. Несмотря на это, в течении долгого времени, паттерн используется и для веб-приложений.

В этой статье мы познакомимся с паттерном Action-Domain-Responder (ADR — Действие-Домен-Ответчик) и научимся его применять в Laravel.

https://laravel.demiart.ru/pattern-action-domain-responder/
Тейлор работает над возможностью устанавливать Laravel чисто как API-бэкенд (Lumen, досвидос), с удалением всего, что связано с работой в браузере. Вот план его работ. Если вам есть, что добавить — пишите ему в твит:
https://twitter.com/taylorotwell/status/1457829364163387392
Релиз Laravel 8.70

Метод can() мидлваров в маршрутах:
Route::put('/post/{post}', function (Post $post) {
// The current user may update the post...
})->can('update', 'post');
https://laravel.com/docs/8.x/authorization#via-middleware

Правило валидации Enum (PHP 8.1+)
$request->validate([
'status' => [new Enum(ServerStatus::class)],
]);
https://laravel.com/docs/8.x/validation#rule-enum

Метод Js::from() для вывода json
<script>
var app = {{ Js::from($array) }};
</script>
https://laravel.com/docs/8.x/blade#rendering-json

Метод withoutMiddleware для группы маршрутов
Route::withoutMiddleware([EnsureTokenIsValid::class])->group(function () {
Route::get('/profile', function () {
//
});
});
https://laravel.com/docs/8.x/middleware#excluding-middleware

Флаг --requests при создании моделей через artisan-команду. Позволяет создать форм-реквесты Store{Model}Request и Update{Model}Request и обновляет контроллер для их использования в соответствующих методах.
Сравнение php-fpm, nginx-unit и laravel-octane

Статья посвящена сравнению производительности различных веб-серверов для приложения, построенного на базе Laravel. Ниже будет много графиков и параметров конфигурации и мои личные выводы.

Сам я давно работаю с nginx-unit (+lumen), однако при получении новых проектов очень часто вижу использование php-fpm. На предложения перейти на nginx-unit, возникает вполне логичный вопрос — «а чем он лучше?».

https://habr.com/ru/post/588785/
Редизайн Ignition для Laravel 9

Подробнее о новых фишках:
https://twitter.com/flareappio/status/1460560510055849987

Посмотреть вживую:
https://flareapp.io/ignition-redesign/
Релиз Laravel 8.71
https://github.com/laravel/framework/releases/tag/v8.71.0

Также зарелизились:
Laravel 6.20.39
Forge CLI 1.3.4
Horizon 5.7.16
Octane 1.0.19
Sail 1.12.5
Sanctum 2.12.2
Scout 9.3.2
Serializable Closure 1.0.4
Telescope 4.6.7
Vapor UI 1.4.0
Релиз Laravel 8.73

• Implement lazyById in descending order
• Fix assertSoftDeleted & assertNotSoftDeleted
• Added Prohibits validation rule to dependentRules property
• Allow a Closure to be passed as a ttl in Cache remember() method

Релиз Laravel 8.72
• Allow users to specify options for migrate:fresh for DatabaseMigration trait
• Add support for countables to the pluralizer
• Use parents to resolve middleware priority
• Add extra method in PasswortReset for reset URL to match the structure of VerifyEmail

https://github.com/laravel/framework
Что нового в Eloquent ORM

Рассмотрим новый функционал, появившийся в Laravel с момента первоначального релиза версии 8. Сегодня поговорим о новых методах в Database и Eloquent. Пройдемся прямо по каждой версии, в которых появлялось что-то новое.

https://laravel.demiart.ru/eloquent-new-features/
Тейлор обещает скоро выпустить:
* Новый дизайн для laravel.com
* Nova 4.0
* Секретный проект «Beep»
Релиз Laravel 8.74
https://github.com/laravel/framework/releases/tag/v8.74.0

Также зарелизены:
Browser Kit Testing 6.2.3
Cashier Paddle 1.4.8
Octane 1.0.21
Sail 1.12.9
Serializable Closure 1.0.5
Telescope 4.6.8
Совет дня от Alex Garrett-Smith

Используйте blade-директиву forelse, вместо foreach вложенную в if-условие.
👍3
Что нового в 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