
Swoft est un framework de coroutine de microservices hautes performances PHP. Il est publié depuis de nombreuses années et est devenu le meilleur choix pour php. Il peut être comme Go, serveur Web coroutine intégré et client coroutine commun et réside en mémoire, indépendamment du PHP-FPM traditionnel. Il existe des opérations de langage Go similaires, similaires aux annotations flexibles du framework Spring Cloud.
Github
https://github.com/swoft-cloud/swoft
Fonctionnalité
Cadre complet de coroutine
Swoft est le premier résident PHP dans le cadre d'annotation de mémoire, avec des conventions Spring Boot plus grandes que le concept de conception de configuration, avec un ensemble de spécifications de développement.
Aop
AOP est une programmation orientée objet qui facilite le découplage du code métier, améliore la qualité du code et augmente la réutilisation du code.
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"; } }
Service HTTP
Le service @Controller()
est simple et flexible, uniquement pour utiliser les @Controller()
et @RequestMapping(route="index")
pour définir le service。
class IndexController { public function index(): string { return "test"; } }
Service Websocket
Swoft fournit un Websocket complet permettant aux développeurs de créer rapidement un service
class ChatModule { public function onOpen(Request $request, int $fd): void { server()->push($request->getFd(), "Opened, welcome!(FD: $fd)"); } }
Service RPC
Swoft RPC peut être appelé comme une fonction native comme Dubbo.
class RpcController { private $userService; public function getList(): array { $result = $this->userService->getList(12, 'type'); return [$result]; } }
Service TCP
Swoft fournit également un support de service TCP riche en fonctionnalités.
<?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 connexions
Swoft est simple à définir un pool de connexions hautes performances avec comme ceci:
return [ 'xxx.pool' => [ 'class' => \Swoft\xxx\Pool::class, 'minActive' => 10, 'maxActive' => 20, 'maxWait' => 0, 'maxWaitTime' => 0, 'maxIdleTime' => 60, ] ];
Compatible avec Laravel ORM
La base de données Swoft est hautement compatible avec Laravel ORM, il est facile à utiliser pour les développeurs PHP dans Swoft.
Microservice
Swoft fournit un ensemble de composants de gouvernance de microservices à construction rapide, que les développeurs peuvent facilement utiliser.
- Enregistrement et découverte du service
- Courtier de service
- Configuration centralisée
- Capacité de limitation du service
class Test { public function func(): string {
Github
https://github.com/swoft-cloud/swoft
Benchmark
