A estrutura de desenvolvimento de corrotinas imi é uma estrutura de desenvolvimento de corrotinas PHP baseada em Swoole. Ela suporta o desenvolvimento de serviços de protocolos convencionais, como Http, Http2, WebSocket, TCP, UDP e MQTT. É especialmente adequada para microsserviços de Internet, mensagens instantâneas, mensagens instantâneas. , Internet das Coisas e outros cenários! .
Componentes principais:
HttpApi, WebSocket, TCP, UDP, servidor MQTT
Pool de conexões MySQL (mestre-escravo + balanceamento de carga)
Pool de conexões Redis (mestre-escravo + balanceamento de carga)
ORM super fácil de usar (Db, Redis, Tree)
Atualização quente em milissegundos
POA
Recipiente de feijão
Cache
Leitura e gravação de configuração (Config)
Enumeração
Evento
Fachada
Validar
Trancar
Registro
Tarefas assíncronas (Tarefa)
Requisitos ambientais:
Redis,MySQL
log de atualização da estrutura de desenvolvimento de corrotina imi:
v2.0.11
Melhorar
Hot update suporta recarregar arquivos de configuração
Adicionado Server::getConnections(), Server::getConnectionCount()(#203)
Suporta gravação dinâmica de dados no modelo, mas não suporta toArray() e serialização
O monitoramento SQL oferece suporte à captura de exceções
A inicialização do ambiente Workerman suporta a saída de informações de rede
with() associa atributos de pré-carregamento
Esta versão implementa o modelo de consulta associada com recurso, que pode reduzir o número de consultas e melhorar o desempenho das consultas associadas.
Suporte à configuração with=true nas anotações associadas para ativar o pré-carregamento automático
Configuração de suporte withFields={"Especificar campos serializados"} em anotações de associação
Suporte para chamar o método with() após Model::query() para especificar o nome do atributo associado pré-carregado
Suporta chamar o método with() após Model::query() para especificar o retorno de chamada correspondente ao nome do atributo associado pré-carregado.
Suporte a chamada de withField() após Model::query() para especificar o modelo consultado e os campos durante a serialização
Model::queryRelationsList() suporta consultas pré-carregadas
otimização
Melhore a experiência de desenvolvimento (#197)
Otimize o desempenho da verificação de arquivos no Swoole
Compatível com cenários em que o nome abreviado do Swoole está desativado
Otimize AppContexts::APP_PATH para ser tratado como um caminho absoluto
Otimize a tolerância a falhas de exceções lançadas por erros JSON
Melhorias nos testes unitários (#202)
Reconstrua o roteamento HTTP para melhorar o desempenho (#200)
Otimize o prompt quando o tipo ArrayList não corresponder
Ao gerar um modelo, defina o método getter do campo do tipo json para um retorno de referência para facilitar a modificação dos dados.
Otimize algum código
reparar
Corrija o problema de que as configurações @app.overrideDefaultIgnoreNamespace e @app.overrideDefaultIgnorePaths não entram em vigor
Corrigido o problema de que initUri() seria acionado quando Request executasse setUri()
Corrija o problema de conversão de componentes de permissão em formato de árvore (#201)
Corrigido o problema em que SessionId é tratado como uma sessão normal quando é uma string vazia
Corrigir falha de análise de SessionJson vazia
Corrigir SwooleRedisServerUtil
Corrigir WorkermanUDP não pode obter packetData do contexto de solicitação
Corrigido o problema de que os parâmetros dos campos especificados das anotações ManyToMany, PolymorphicToMany e PolymorphicManyToMany são inválidos.