
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.
Github
https://github.com/swoft-cloud/swoft
Recurso
Estrutura completa da rotina
O Swoft é o primeiro residente do PHP na estrutura de anotação de memória, com as convenções do Spring Boot maiores que o conceito de design de configuração, com um conjunto de especificações de desenvolvimento.
Aop
AOP é uma programação orientada a objetos que facilita a dissociação do código comercial, melhora a qualidade do código e aumenta a reutilização do código.
class CalcExecTimeAspect { protected $start; public function before() { $this->start = microtime(true); } public function after(JoinPoint $joinPoint) { $method = $joinPoint->getMethod(); $after = microtime(true); $runtime = ($after - $this->start) * 1000; echo "{$method} cost: {$runtime}ms\n"; } }
Serviço HTTP
O serviço HTTP é simples e flexível, apenas para usar as @Controller()
e @RequestMapping(route="index")
para definir o serviço。
class IndexController { public function index(): string { return "test"; } }
Serviço Websocket
A Swoft fornece um Websocket completo para os desenvolvedores criarem serviços rapidamente
class ChatModule { public function onOpen(Request $request, int $fd): void { server()->push($request->getFd(), "Opened, welcome!(FD: $fd)"); } }
Serviço RPC
O Swoft RPC pode ser chamado como uma função nativa como Dubbo.
class RpcController { private $userService; public function getList(): array { $result = $this->userService->getList(12, 'type'); return [$result]; } }
Serviço TCP
O Swoft também oferece suporte ao serviço TCP rico em recursos.
<?php declare(strict_types=1); namespace App\Tcp\Controller; use Swoft\Tcp\Server\Annotation\Mapping\TcpController; use Swoft\Tcp\Server\Annotation\Mapping\TcpMapping; use Swoft\Tcp\Server\Request; use Swoft\Tcp\Server\Response; class DemoController { public function echo(Request $request, Response $response): void {
Pool de conexão
O Swoft é simples de definir um pool de conexões de alto desempenho com o seguinte:
return [ 'xxx.pool' => [ 'class' => \Swoft\xxx\Pool::class, 'minActive' => 10, 'maxActive' => 20, 'maxWait' => 0, 'maxWaitTime' => 0, 'maxIdleTime' => 60, ] ];
Compatível com Laravel ORM
O banco de dados Swoft é altamente compatível com o Laravel ORM. É fácil para o desenvolvedor PHP usar no Swoft.
Microserviço
O Swoft fornece um conjunto de componentes de governança de microsserviço de construção rápida, fáceis de usar pelos desenvolvedores.
- Registro e descoberta de serviços
- Corretor de serviços
- Configuração centralizada
- Capacidade de limitação de serviço
class Test { public function func(): string {
Github
https://github.com/swoft-cloud/swoft
Referência
