Введение
- Примеры кода
- Опечатки
- Благодарности
Асинхронное программирование
- Что такое Асинхронность?
- Параллелизм и асинхронность
- Зачем беспокоится об этом на бэкенде?
- Заключение
Что такое ReactPHP
- Проблема
- Асинхронный код
- Событийно-ориентированная архитектура
Цикл событий
- Основы
- Реализации
- Цикл событий и несколько CPU
Таймеры
- Асинхронность и параллельность
- Периодический таймер
- Одноразовый таймер
- Управление таймерами
- Следует избегать блокирующих операций
- Заключение
Потоки
- Читаемый поток
- Нет необходимости вызывать fclose()
- Записываемый поток
- Ограничения Windows
- php://
- Piping
- Двунаправленный поток
- Ск возной поток
- Композитный поток
- Обработка ошибок
- Заключение
Что такое тики цикла событий
- Что такое тик?
- Порядок выполнения
- Заключение
Промисы
- Основы
- Форвардинг промисов
- Промисы и колбэки
- Управление промисами
- Заключение
Пишем простой чат на сокетах: сервер
- Сокет
- Слушаем входящие соединения
- Отправляем и получаем данные
- Приложение Сервер Чата
- Имена Пользователей
- Заключение
Пишем простой чат на сокетах: клиент
- Соединяемся с сервером
- Взаимодействие с потоками
Пишем простой чат на сокетах: улучшения
- Уникальные имена
- Цветной вывод
- Управляющие последовательности
- Приватные сообщения
- Заключение
Работа с файловой системой
- Файлы
- Директории
- Символические ссылки
- Как всё это работает?
- Заключение
Реализуем RESTful API с использованием MySQL
- Начало работы
- Получение всех пользователей
- Маршрутизация
- Создание нового пользователя
- Рефакторинг
- Маршруты для одного объекта
- Получение одного пользователя
- Обновление имени пользователя
- Удаление пользователя
- Middleware-маршрутизатор
- Почему именно FastRoute?
- Базовая HTTP-аутентификация
- Заключение
Управляем дочерними процессами
- Ввод-вывод
- Остановка процесса
- PID процесса
- Идентификатор процесса
- Совместимость с Windows
- Заключение
Отмена промисов по таймеру
- Проблема
- PromiseTimer
- Отмена промиса
- Отмена исходного промиса
- Отмена обёртки
- Заключение
Преобразуем промис в поток и обратно
- Из потока в промис
- Выполнение и отклонение промиса
- Из промиса в поток
Интеграция с синхронными приложениями
- Блокируем поток
- Функция
Block\sleep() - Семейство функций
Block\await*
Модульное тестирование промисов
- Используем моки
- Ожидание промисов
- Заключение
