
Swoft ist ein PHP-Hochleistungs-Microservice-Coroutine-Framework. Es wurde seit vielen Jahren veröffentlicht und ist die beste Wahl für PHP geworden. Es kann wie Go, ein integrierter Coroutine-Webserver und ein allgemeiner Coroutine-Client sein und befindet sich unabhängig vom herkömmlichen PHP-FPM im Speicher. Es gibt ähnliche Go-Sprachoperationen, ähnlich den flexiblen Annotationen des Spring Cloud-Frameworks.
Github
https://github.com/swoft-cloud/swoft
Funktion
Vollständiges Coroutine-Framework
Swoft ist das erste PHP-residente Framework für Speicheranmerkungen. Die Spring Boot-Konventionen sind größer als das Konfigurationsdesign-Konzept und enthalten eine Reihe von Entwicklungsspezifikationen.
Aop
AOP ist eine objektorientierte Programmierung, die es einfacher macht, Geschäftscode zu entkoppeln, die Codequalität zu verbessern und die Wiederverwendbarkeit von Code zu erhöhen.
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"; } }
HTTP-Service
Der HTTP-Dienst ist einfach und flexibel, nur um die @Controller()
und @RequestMapping(route="index")
zum Definieren des Dienstes zu verwenden。
class IndexController { public function index(): string { return "test"; } }
Websocket-Service
Swoft bietet Entwicklern ein vollständiges Websocket, mit dem sie schnell einen Service erstellen können
class ChatModule { public function onOpen(Request $request, int $fd): void { server()->push($request->getFd(), "Opened, welcome!(FD: $fd)"); } }
RPC-Dienst
Swoft RPC kann wie eine native Funktion als Dubbo bezeichnet werden.
class RpcController { private $userService; public function getList(): array { $result = $this->userService->getList(12, 'type'); return [$result]; } }
TCP-Dienst
Swoft bietet auch funktionsreiche Unterstützung für TCP-Dienste.
<?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 {
Verbindungspool
Swoft ist einfach zu definieren, um einen Hochleistungsverbindungspool wie folgt zu definieren:
return [ 'xxx.pool' => [ 'class' => \Swoft\xxx\Pool::class, 'minActive' => 10, 'maxActive' => 20, 'maxWait' => 0, 'maxWaitTime' => 0, 'maxIdleTime' => 60, ] ];
Kompatibel mit Laravel ORM
Die Swoft-Datenbank ist sehr kompatibel mit Laravel ORM. Für PHP-Entwickler ist die Verwendung in Swoft einfach.
Microservice
Swoft bietet eine Reihe von schnell zu erstellenden Microservice-Governance-Komponenten, die für Entwickler einfach zu verwenden sind.
- Serviceregistrierung und -ermittlung
- Service Broker
- Zentralisierte Konfiguration
- Service-Drosselungsfähigkeit
class Test { public function func(): string {
Github
https://github.com/swoft-cloud/swoft
Benchmark
