Введение в IMI
IMI-это платформа разработки приложений на основе PHP, которая поддерживает разработку приложений Http Api, WebSocket, TCP, UDP.
Мощно управляемый Swool, Swool обладает резидентной памятью, неблокирующим вводом-выводом и другими функциями.
Платформа соответствует стандартной спецификации PSR и предоставляет общие компоненты, такие как AOP, аннотации, объединение соединений, управление контекстом запроса, модель ORM и т.д.
Модель IMI поддерживает определение ассоциации, добавление, удаление и изменение шаттла!
Введение автора
Юрунь, уроженец Уси, провинция Цзянсу, родился в 1994 году. Контакты в младших классах средней школы с легким языком, с тех пор в мир кода.
PHP-фреймворк Yurun был разработан и выпущен в 2013 году (в настоящее время не поддерживается).
Начиная с 2017 года, мы официально будем играть в GIT и публиковать проекты с открытым исходным кодом. Вещи с открытым исходным кодом можно делать только тогда, когда они доступны. Они будут построены не для колес, а для практичности.
Свяжитесь со Свулом в 2018 году, открыв дверь в новый мир, в оригинальную PSP все еще можно играть!
16 апреля 2018 года я написал первый байт кода для imi.
21 июня 2018 года была выпущена первая общедоступная версия V0.0.1.
После года реальных боевых действий, 21 июня 2019 года, исполняется первая годовщина официального релиза версии v1.0.0.
Часть проекта Yurun с открытым исходным кодом: imi, Yurun Http, Yurun OAuthLogin, PaySDK, Китайский до
Я пожертвовал 1111 на весь проект столько, сколько смог, через облачную платформу кода.
Основные компоненты
- [x] Сервер (Http/Websocket/Tcp/Udp)
- [x] Контейнер (PSR-11)
- [x] Инъекция Аоп
- [x] Промежуточное ПО Http (PSR-15)
- [x] Пул подключений MySQL (совместная работа и синхронизация, ведущий-ведомый, балансировка нагрузки)
- [x] Пул соединений Redis (Совместная маршрутизация и синхронизация, Балансировка нагрузки)
- [x] Согласованная работа с Бд
- [x] модель реляционной базы данных
- [x] Модель таблицы общей памяти для разных процессов
- [x] Модель Redis
- [x] Журнал (PSR-3/Файл + Консоль)
- [x] кэш (PSR-16/Файл + Redis)
- [x] Оценка
- [x] Задача асинхронная задача
- [x] Процесс/пул процессов
- [x] Помощник по разработке командной строки
- [x] Горячее обновление Бизнес-кода
Расширенные компоненты
imi-rpc
imi-hprose
imi-контроль доступа
imi-ограничение скорости
imi-общая память
Начните использовать
Полное Руководство По Разработке
Демонстрация нового проекта
Проекты на основе Imi
Шесть квадратных метров (Юрунь)
Замедлить Блог (Замедлить)
Другие проекты неудобно раскрывать по рабочим причинам. Я знаю, что моя компания и частные проекты работают под управлением imi.
Происхождение-Дизайн-Будущее
происхождение
Как упоминалось выше, я связался со Свулом в 2018 году и открыл дверь в новый мир. PHP все еще может так играть!
Я думаю, что лучший способ научиться – это использовать его. Без практических функций для его достижения будет легко забыть, а не по-настоящему научиться. У меня также был опыт разработки PHP-фреймворка Yurun раньше, поэтому я решил создать фреймворк.
Дизайн
Прежде чем разрабатывать imi, я изучил несколько хорошо известных в то время фреймворков. Увидев Swift, я, наконец, решил широко использовать аннотации в рамках IMI. Что касается достоинств и недостатков аннотаций, Baidu может сделать лучше, чем я сказал, поэтому я не буду копировать и вставлять их сюда снова.
В настоящее время большинство фреймворков Swool делают акцент на микросервисах, но концепция дизайна IMI такова:
Микросервисы могут, но не обязательно
Я не думаю, что большинству компаний-разработчиков вообще нужны или нужны микросервисы. Затраты на разработку и обслуживание микросервисов будут относительно большими, и нет определенного масштаба и объема бизнеса. Если микросервисы будут вынуждены, они поставят телегу впереди лошади и создадут себе проблемы.
IMI реализует самые базовые компоненты imi-rpc и поддерживает протокол Hprose. Хотя более углубленной реализации нет, все это показывает концепцию дизайна imei, которую можно рассматривать как не выполняемую.
Таким образом, основное внимание IMI уделяется разработке отдельных приложений. Проект выполняется под управлением Swoole, который может работать лучше, чем под управлением fpm, и может выполнять больше посещений, особенно в сценариях с интенсивным вводом-выводом, где вызывается большое количество сторонних интерфейсов.
Разработка протоколов WebSocket, TCP и UDP также является большим преимуществом Swool.
Конечно, Swool также неплохо подходит для разработки промежуточного программного обеспечения, а не только для обуздания.
Будущее
В будущем IMI будет постепенно осваиваться и развиваться в области микроуслуг, но сейчас более желательно хорошо поработать над разработкой текущего единого приложения.
Связаться с нами
Обратная связь на Github: https://github.com/Yurunsoft/…
Облачное хранилище кода: https://gitee.com/yurunsoft/IMI
Вопрос о неисправности сегмента: https://segmentfault.com/
Вопросы и ответы с открытым исходным кодом в Китае: https://www.oschina.net/question
Связь с группой QQ: 17916227 。
Добро пожаловать в команду разработчиков IMI, которые действительно любят код, а не просто как друзья на работе!