Один compose-файл, семь сервисов
nginx, PHP, Vue SSR, MySQL, Redis, Memcached и очередь поднимаются из одного файла. Свежий чекаут это три команды.
Обновления о работе, стеке и сайте. Длинные посты, когда теме нужно больше места.
nginx, PHP, Vue SSR, MySQL, Redis, Memcached и очередь поднимаются из одного файла. Свежий чекаут это три команды.
Документ это английский, русский или немецкий. Не все три. Смена языка это новый URL, а не второй словарь в куче.
Логин, регистрация, logout и текущий пользователь живут под /api. Токен это httpOnly auth_token. Он не попадает в localStorage и не едет в теле JSON.
В стеке уже было два хранилища в памяти. У каждого теперь одна работа. HTML живёт в Memcached. Очереди, сессии и lock на пересборку живут в Redis.
JS и CSS с хешем содержимого получают долгий max-age. Документ, который на них указывает, ревалидируется после каждого деплоя.
Долгий job не задержит тик cron. Деплой перезапускает воркер, чтобы новые job не крутились на старых классах.
Поверхности, текст, кнопки и ссылки читают CSS-переменные. Переключатель темы меняет один атрибут на корне. Локальных цветов в компонентах нет.
Новости, заметки и кейсы хранят три HTML-тела в JSON. Сетке нужны заголовки и анонсы. Статья ей не нужна.
LaraBoom находит Path-классы по атрибутам. Папки host routes, которую надо синхронизировать, нет. JSON живёт под /api.