
O que é o Swoft?
O Swoft é um framework de alto desempenho em microsserviços em PHP. Foi publicado por muitos anos e se tornou a melhor escolha para php. Pode ser como Go, servidor da web incorporado de corotina e cliente comum de corotina e é residente na memória, independentemente do PHP-FPM tradicional. Existem operações de idioma Go semelhantes, semelhantes às anotações flexíveis da estrutura Spring Cloud.
Através de três anos de acumulação e exploração de direção, a Swoft transformou a Swoft na Spring Cloud no mundo PHP, que é a melhor escolha para a estrutura de alto desempenho e gerenciamento de microsserviços do PHP.
Github
https://github.com/swoft-cloud/swoft
Swoft v2.0.7
O Swoft v2.0.7 continua navegando na v2.0.6 e foi usado em um grande número de operações de produção, as quais foram reconhecidas e suportadas por muitos usuários. A versão oficial fez muitas melhorias e otimizações, com melhor desempenho.
- Adicionado componente de função Http Session, fornece gerenciamento de sessões http, suporta vários drivers de armazenamento
- Suporte aprimorado à solicitação do servidor TCP para adicionar middleware de método global ou correspondente
- Suporte aprimorado da solicitação de mensagem do servidor Websocket para adicionar middleware de método global ou correspondente
Sessão HTTP
Instale o componente swoft / session com o Composer
- A execução do
composer require swoft/session no diretório em que o projeto composer.json está localizado. - Adicione o
Swoft\Http\Session\SessionMiddleware ao middleware global
No app/bean.php :
'httpDispatcher' => [
O padrão é baseado em drivers de arquivos locais, salvos no diretório runtime/sessions
Mais informações sobre o driver precisam apenas configurar o handler correspondente.
Por exemplo, configure o driver Redis :
'sessionHandler' => [ 'class' => RedisHandler::class,
Middleware do sistema de mensagens Websocket
Configurado em app/bean.php :
'wsMsgDispatcher' => [ 'middlewares' => [ \App\WebSocket\Middleware\GlobalWsMiddleware::class ], ],
class TestController {}
Middleware de solicitação TCP
Configurado em app/bean.php :
'tcpDispatcher' => [ 'middlewares' => [ \App\Tcp\Middleware\GlobalTcpMiddleware::class ], ],
class DemoController {
Atualizar log
Dicas de atualização:
Swoole\WebSocket\Server::push O quarto parâmetro $finish foi alterado para int type após o swoole 4.4.12 .- O parâmetro de evento
TcpServerEvent::CONNECT do servidor tcp permanece o mesmo que receber e fechar. Posições de swap de $fd, $server .
Github
https://github.com/swoft-cloud/swoft
Fixed :
- Ao corrigir a injeção de configuração, se o valor não for encontrado, o valor padrão do tipo correspondente será usado para substituir o atributo, fazendo com que o valor padrão do atributo seja substituído d84d50a7
- Corrigido ao usar o agendamento de mensagens no servidor ws, nenhum dado vazio foi filtrado, resultando em mais uma resposta. Evite o método swoft-cloud / swoft # 1002 [d84d50a7] ( https://github.com/swoft-cloud/swoft-component/ Pull / 522 / commits / d84d50a76c4c7ff19dc0896868745cfe8f0d93c9)
- Corrigido ao usar o agendamento de mensagens no servidor tcp, nenhum dado vazio foi filtrado, resultando em mais uma resposta. 07a01ba1
- Corrigidas as dependências ausentes da biblioteca swoft / stdlib ao usar o componente do console independentemente c569c81a
- Fixed
ArrayHelper::get Quando a chave de entrada é um número inteiro, o parâmetro parâmetro está incorreto a44dcad - Corrija a renderização do console usando a tabela, ao calcular o valor int, calcule o erro de tipo de relatório de largura 74a835ab
- O erro corrigido no usuário do componente não pode personalizar o nível de tratamento de erros padrão 4c78aeb
- Correção Ativar e desativar as configurações do componente
isEnable() não funciona da8c51e56 - Correções O uso do método
uniqid() no ambiente cygwin deve definir o segundo parâmetro como true c7f688f - Corrigido Não foi possível definir o título do processo no ambiente cygwin e causar o erro c466f6a
- Corrigido Não foi possível excluir os dados do cookie do navegador usando a
response->delCookie() 8eb9241 - Corrigido o envio de mensagens do servidor WS, os dados ext recebidos não são necessariamente uma matriz que causa um erro ff45b35
- Corrigir arquivo de log dividido por tempo c195413
- Corrija o pequeno problema no formato
JSON do log a3fc6b9 - Corrigida a chamada
getList provedor de serviços rpc duas vezes fd03e71 - O
redis cluster fixar não suporta o parâmetro de auth 7a678f - Corrija o modelo
json consulta de modelo, não suporta a array 6023a9 - Rediscar operação
multi fixa não conectada no tempo e5f698 - A correção redis não suporta
expireAt , geoRadius 749241 - Corrigido o problema de desvio de detecção de carimbo de data / hora
crontab eb08a46
Atualização (atualização) :
- O console de atualização também emite um evento antes de renderizar a mensagem de ajuda
ConsoleEvent::SHOW_HELP_BEFORE d3f7bc3 - Simplifique e unifique a lógica de comando de gerenciamento de servidor http, ws, tcp, rpc f202c826
- Atualize as classes de conexão ws e tcp para adicionar os métodos
toArray e toArray para facilitar a exportação de informações e a restauração de conexões via armazenamento de terceiros ( redis ) [a8b0b7c] ( https://github.com/swoft-cloud/swoft -component / pull / 528 / commits / a8b0b7c77d56d4392eba75d13a911816b9dc0cee) - Otimize o servidor para adicionar um manipulador de eventos de mensagem unificado do swoole pipe, use o evento swowt em ws, tcp para manipular as mensagens entre processos 1c51a8c
Aprimoramento :
- Agora, as solicitações tcp suportam a adição de middleware de método global ou correspondente, e o processo e o uso são semelhantes ao http middleware. Útil apenas ao usar o agendamento do sistema 6b593877
- Agora, a solicitação de mensagem do websocket suporta a adição de middleware de método global ou correspondente, e o processo e o uso são semelhantes ao http middleware. Útil apenas ao usar o agendamento do sistema 9739815
- O Gerenciamento de Eventos permite que a configuração
destroyAfterFire limpe os dados transportados no evento após o envio de cada evento 50bf43d3 - O
code adicionado à exceção de erro do banco de dados retorna fd306f4 - Operação de arquivo da
writeFile Nova exceção de falha de gravação 08c4244 - Verificação de novo parâmetro RPC 8646fc5
Github
https://github.com/swoft-cloud/swoft