Платформа разработки сопрограмм imi — это среда разработки сопрограмм PHP, основанная на Swoole. Она поддерживает разработку сервисов для основных протоколов, таких как Http, Http2, WebSocket, TCP, UDP и MQTT. Она особенно подходит для микросервисов Интернета, обмена мгновенными сообщениями и обмена мгновенными сообщениями. , Интернет вещей и другие сценарии. .
Основные компоненты:
HttpApi, WebSocket, TCP, UDP, сервер MQTT
Пул соединений MySQL (главный-подчиненный + балансировка нагрузки)
Пул соединений Redis (главный-подчиненный + балансировка нагрузки)
Супер простой в использовании ORM (Db, Redis, Tree)
Горячее обновление в миллисекундах
АОП
Контейнер для зерен
Кэш
Чтение и запись конфигурации (Config)
Перечисление
Событие
Фасад
Подтвердить
Замок
Бревно
Асинхронные задачи (Задача)
Экологические требования:
Redis, MySQL
Журнал обновлений среды разработки сопрограмм imi:
v2.0.11
Усиливать
Горячее обновление поддерживает перезагрузку файлов конфигурации.
Добавлены Server::getConnections(), Server::getConnectionCount()(#203).
Поддерживает динамическую запись данных в модель, но не поддерживает toArray() и сериализацию.
SQL-мониторинг поддерживает перехват исключений
Запуск среды Workman поддерживает вывод сетевой информации.
with() связывает атрибуты предварительной загрузки
В этой версии реализован запрос, связанный с моделью, с функцией, которая позволяет уменьшить количество запросов и повысить производительность связанных запросов.
Поддержка настройки с = true в связанных аннотациях для включения автоматической предварительной загрузки.
Поддержка настройки withFields={"Указать сериализованные поля"} в аннотациях ассоциации
Поддержка вызова метода with() после Model::query() для указания предварительно загруженного имени связанного атрибута.
Поддерживает вызов метода with() после Model::query() для указания обратного вызова, соответствующего предварительно загруженному имени связанного атрибута.
Поддержка вызова withField() после Model::query() для указания запрашиваемой модели и полей во время сериализации.
Model::queryRelationsList() поддерживает предварительно загруженные запросы.
оптимизация
Улучшение опыта разработки (#197)
Оптимизируйте производительность сканирования файлов в Swoole.
Совместимо со сценариями, в которых короткое имя Swoole отключено.
Оптимизируйте AppContexts::APP_PATH, чтобы он рассматривался как абсолютный путь.
Оптимизация отказоустойчивости исключений, возникающих из-за ошибок JSON.
Улучшения модульного тестирования (#202)
Реконструировать маршрутизацию HTTP для повышения производительности (#200).
Оптимизируйте подсказку, когда тип ArrayList не соответствует.
При создании модели установите метод получения поля типа json на возврат ссылки, чтобы облегчить модификацию данных.
Оптимизируйте немного кода
ремонт
Устранена проблема, из-за которой конфигурации @app.overrideDefaultIgnoreNamespace и @app.overrideDefaultIgnorePaths не вступают в силу.
Исправлена проблема, связанная с запуском initUri(), когда Request выполняет setUri().
Исправлена проблема преобразования компонентов разрешений в древовидную форму (#201).
Исправлена проблема, из-за которой SessionId обрабатывался как обычный сеанс, если он представлял собой пустую строку.
Исправить пустой сбой анализа SessionJson
Исправить SwooleRedisServerUtil
Исправить WorkermanUDP не может получить packageData из контекста запроса.
Исправлена проблема, связанная с недопустимостью указанных параметров полей аннотаций ManyToMany, PolymorphicToMany и PolymorphicManyToMany.