А может на PHP? – Telegram
А может на PHP?
142 subscribers
129 photos
4 videos
5 files
863 links
Канал любителей велосипедов.

По вопросам - @fedor2dostoevsky

Остальные каналы "А может?" - @maybe_channel
Download Telegram
В eloquent если явно не подтянуть связующую сущность $posts->with('author') то каждая итерация будет выполнять запрос к базе на получения автора

@foreach($posts as $post)
{{ $post->author->name }}
@endforeach

но бывает так, что забываешь указать relation и не замечаешь это в дибагбаре.

Но если в провайдере установить Model::preventLazyLoading(!app()->isProduction());

то при нахождении N+1 вы получите такой эксепшн, это очень помогает

Автор: @kurban_92
🦀Symfony Messenger в микросервисах: контракты сообщений и отказоустойчивость — Полезно про микросервисы и асинхронную коммуникацию.

https://medium.com/@dmitrii_tarasov/symfony-messenger-in-microservices-message-contracts-and-resilience-b9cc1a95fcf9
🪳Примеры интеграции API Yii2 для кучи разных сервисов: Почта.ру, Сбербанк, ПриватБанк и много других

https://gitlab.com/users/dicr/projects
🐕‍🦺Поговорим о проблемах кэширования

http://amdy.su/2021/08/23/cache/
🌼Обнаружение проблем n+1 через лотерейный подход, то есть запускаем проверку не каждый раз, а с некоторым шансом. Также как сделана в Laravel очистка сессий.

https://timacdonald.me/introducing-lazy-loading-prevention-into-an-existing-laravel-application/
🙌🏻DRY – это про знания. Дублирование кода – это не проблема

https://verraes.net/2014/08/dry-is-about-knowledge/
В php давно есть дженерики, реализуемые с помощью статических анализаторов, таких как psalm и phpstan, а теперь появился вот такой пакет, который предлагает использовать дженерики прям на уровне языка. Пакет парсит все классы, содержащие дженерики, и генерирует валидный php класс на их основе.

https://github.com/mrsuh/php-generics