Laravel World
8.47K subscribers
1.25K photos
25 videos
9 files
2.08K links
Laravel & PHP news
Download Telegram
Еще небольшое разъяснение от Дэна Харрина, автора нового метода 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
👍2
На следующей неделе в 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.
Пример качественного 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/