Транзакции обычно вспоминают в момент, когда что-то уже сломалось. На первый взгляд кажется, что проблема в плохом SQL, невнимательности или “ну кто же знал, что два запроса придут…
Actions и Use Cases в PHP: куда выносить повторяющуюся логику
В PHP-проектах часто используют классы под конкретные сценарии приложения. Где-то их называют Action, где-то UseCase, где-то ApplicationService, где-то CommandHandler. Названия разные, но идея одна: отдельный класс описывает конкретное…
Исключения в PHP и Laravel: что это, зачем нужны и как применять
Исключения в PHP часто воспринимают слишком узко: как способ “поймать ошибку” через try/catch. Из-за этого в проектах появляются две крайности. Первая — исключения почти не используют. Методы возвращают…
Авторизация backend-запросов между микросервисами в PHP/Laravel
Введение Когда разработчики начинают строить микросервисную архитектуру, вопрос авторизации между сервисами обычно решается в стиле: Проблема в том, что микросервисы очень быстро превращают инфраструктуру в распределённую систему с…
Альтернативы Centrifugo для Laravel: Reverb, Pusher, Ably, Socket.IO, SSE и polling
Centrifugo — сильное решение для real-time систем. Особенно когда нужен отдельный WebSocket-слой, приватные каналы, публикация событий из backend-а, масштабирование и независимость от конкретного фреймворка. Но Centrifugo не единственный…
Фронтенд и эксплуатация Laravel + Centrifugo: как не сломать real-time в production
Real-time система не заканчивается на том, что backend опубликовал событие в Centrifugo. Это только половина работы. Вторая половина начинается на фронтенде и в эксплуатации: подключение клиента, обработка входящих…
Публикация событий из Laravel в Centrifugo: Events, listeners, queue jobs и безопасный real-time payload
Real-time в Laravel-проекте не должен начинаться с прямого HTTP-запроса к Centrifugo из контроллера. Это быстрый путь к связанному коду, нестабильной архитектуре и ошибкам синхронизации между frontend и backend….
Каналы и авторизация в Centrifugo: как безопасно подключить real-time в Laravel
В предыдущей статье мы разобрали архитектуру Laravel + Centrifugo: Laravel отвечает за бизнес-логику, права доступа и события, Centrifugo — за WebSocket-соединения, каналы и доставку сообщений, а frontend —…
Архитектура Laravel + Centrifugo: кто за что отвечает в real-time системе
В первой части мы разобрались, что Real-time на Laravel-сайте нужен там, где интерфейс должен получать изменения без перезагрузки страницы: новые уведомления, смену статуса заказа, сообщения в чате, обновления…
Real-time на сайте с Laravel и Centrifugo: зачем нужен WebSocket
Большинство web-приложений исторически строится вокруг простой и надёжной модели: пользователь отправляет запрос, сервер его обрабатывает и возвращает ответ. Эта схема лежит в основе классического HTTP-взаимодействия и отлично подходит…