PHP на сървъра: FPM, Swoole, воркери и асинхронни среди | DevSense
Изучете архитектурата на средата на PHP: сравнение между PHP-FPM, дълготрайни сървъри за приложения (Swoole, RoadRunner, FrankenPHP) и асинхронни цикли на събития ReactPHP/AMPHP.
Изучете архитектурата на средата на PHP: сравнение между PHP-FPM, дълготрайни сървъри за приложения (Swoole, RoadRunner, FrankenPHP) и асинхронни цикли на събития ReactPHP/AMPHP.
Compose-рецепти за Laravel Sail: добавяне на Redis, преминаване към PostgreSQL, стартиране на MongoDB с PHP разширение, RabbitMQ, Mailpit/Meilisearch, проверка на състоянието (healthcheck) и именовани томове.
Разделяне на конфигурацията на Laravel Sail и хост машината: .env.example, портове FORWARD_*, APP_URL в Docker, опционален env_file, GitHub Actions с docker compose и чек-листи преди стартиране.
Стартиране на Laravel опашки в Sail: sync vs redis vs database, локален запуск на queue:work и Horizon, RabbitMQ с комюнити драйвери, failed_jobs, queue:restart и как се различава от продукция.
Подробно ръководство за разработчици за B+Tree в InnoDB, купища (Heap) в Postgres, указатели на листови възли, правила за съставни индекси, разширени видове индекси и излишно записване (write amplification).
Практично ръководство за Laravel Sail: смяна на версия PHP, Redis и RabbitMQ, преминаване от MySQL към PostgreSQL, MongoDB, queue workers в контейнери, разделяне на .env и разлики между локална разработка и dev/prod.
Решаване на чести проблеми с Laravel Sail: синхронизиране на файлове в WSL2, права за достъп до storage/vendor, конфликти на портове FORWARD_*, остарял кеш на Docker, конфигуриране на OPcache и Xdebug, работа с Vite и Node.
Как да оптимизирате SQL и схемите, да изберете видовете индекси, кога логиката на ниво база данни се превръща в пречка, как се различават MySQL и PostgreSQL в продакшън и каква е цената на репликите, декомпозицията и шардинга.
Научете как да четете EXPLAIN и EXPLAIN ANALYZE, да оптимизирате JOIN и CTE, да имплементирате keyset пагинация и да разберете поведението на MVCC при натоварване.
Как да управлявате хиляди входящи HTTP събития в секунда: валидация на границата на мрежата, буферни слоеве, групово записване в хранилището и предотвратяване на недостиг на връзки към БД.
Как да изберете брокер за асинхронна работа: сравнение на опашки в паметта (Redis), AMQP брокери (RabbitMQ) и регистрационни файлове за запис (Kafka) въз основа на подредба, мащаб, надеждност и оперативни разходи.