imi 코루틴 개발 프레임워크는 Swoole 기반의 PHP 코루틴 개발 프레임워크로, Http, Http2, WebSocket, TCP, UDP 및 MQTT와 같은 주류 프로토콜의 서비스 개발을 지원합니다. 특히 인터넷 마이크로서비스, 인스턴트 메시징, IM에 적합합니다. , 사물 인터넷 및 기타 시나리오! .
핵심 구성 요소:
HttpApi, WebSocket, TCP, UDP, MQTT 서버
MySQL 연결 풀(마스터-슬레이브 + 로드 밸런싱)
Redis 연결 풀(마스터-슬레이브 + 로드 밸런싱)
매우 사용하기 쉬운 ORM(Db, Redis, Tree)
밀리초 핫 업데이트
AOP
원두용기
은닉처
구성 읽기 및 쓰기(Config)
열거
이벤트
정면
검증
잠그다
통나무
비동기 작업(Task)
환경 요구 사항:
레디스、MySQL
imi 코루틴 개발 프레임워크 업데이트 로그:
v2.0.11
향상시키다
핫 업데이트는 구성 파일 다시 로드를 지원합니다.
서버::getConnections(), 서버::getConnectionCount()(#203)를 추가했습니다.
모델에 동적으로 데이터 쓰기를 지원하지만 toArray() 및 직렬화는 지원하지 않습니다.
SQL 모니터링은 예외 포착을 지원합니다.
Workman 환경 시작은 네트워크 정보 출력을 지원합니다.
with()는 미리 로드된 속성을 연결합니다.
이 버전은 모델 연관 쿼리 기능을 구현하여 쿼리 수를 줄이고 연관 쿼리 성능을 향상시킬 수 있습니다.
자동 사전 로드를 활성화하기 위해 관련 주석에서 =true로 설정 지원
연관 주석에서Fields={"직렬화된 필드 지정"}을 사용한 지원 설정
미리 로드된 관련 속성 이름을 지정하기 위해 Model::query() 이후 with() 메서드 호출 지원
미리 로드된 관련 속성 이름에 해당하는 콜백을 지정하기 위해 Model::query() 이후 with() 메서드 호출을 지원합니다.
Model::query() 이후 withField() 호출을 지원하여 직렬화 중에 쿼리된 모델과 필드를 지정합니다.
Model::queryRelationsList()는 미리 로드된 쿼리를 지원합니다.
최적화
개발 경험 개선(#197)
Swoole에서 파일 검색 성능 최적화
Swoole 짧은 이름이 꺼진 시나리오와 호환 가능
절대 경로로 처리되도록 AppContexts::APP_PATH를 최적화하세요.
json 오류로 인해 발생한 예외의 내결함성 최적화
단위 테스트 개선(#202)
성능 향상을 위해 HTTP 라우팅 재구성(#200)
ArrayList 유형이 일치하지 않는 경우 프롬프트 최적화
모델을 생성할 때 json 유형 필드의 getter 메소드를 참조 반환으로 설정하여 데이터 수정을 용이하게 합니다.
일부 코드 최적화
수리하다
@app.overrideDefaultIgnoreNamespace 및 @app.overrideDefaultIgnorePaths 구성이 적용되지 않는 문제 수정
Request가 setUri() 실행 시 initUri()가 실행되는 문제 수정
권한 구성요소를 트리 형태로 변환하는 문제 수정(#201)
SessionId가 빈 문자열일 때 일반 Session으로 처리되는 문제를 수정했습니다.
빈 SessionJson 구문 분석 오류 수정
SwooleRedisServerUtil 수정
WorkermanUDP가 요청 컨텍스트에서 packetData를 가져올 수 없는 문제 수정
ManyToMany, PolymorphicToMany 및 PolymorphicManyToMany 주석의 지정된 필드 매개변수가 유효하지 않은 문제를 해결했습니다.