
Swoft adalah kerangka kerja coroutine microservice kinerja tinggi PHP. Ini telah diterbitkan selama bertahun-tahun dan telah menjadi pilihan terbaik untuk php. Ini bisa seperti Go, server web coroutine bawaan dan klien coroutine umum dan ada dalam memori, tidak tergantung pada PHP-FPM tradisional. Ada operasi Go bahasa yang serupa, mirip dengan anotasi fleksibel kerangka kerja Cloud Spring.
Github
https://github.com/swoft-cloud/swoft
Fitur
Kerangka kerja coroutine lengkap
Swoft adalah residen PHP pertama dalam kerangka anotasi memori, dengan konvensi Spring Boot lebih besar dari konsep desain konfigurasi, dengan serangkaian spesifikasi pengembangan.
Aop
AOP adalah pemrograman berorientasi objek yang membuatnya lebih mudah untuk memisahkan kode bisnis, meningkatkan kualitas kode, dan meningkatkan penggunaan kembali kode.
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"; } }
Layanan Http
Layanan Http sederhana dan fleksibel, hanya menggunakan @Controller()
dan @RequestMapping(route="index")
untuk mendefinisikan layanan。
class IndexController { public function index(): string { return "test"; } }
Layanan websocket
Swoft menyediakan Websocket lengkap bagi pengembang untuk membangun layanan dengan cepat
class ChatModule { public function onOpen(Request $request, int $fd): void { server()->push($request->getFd(), "Opened, welcome!(FD: $fd)"); } }
Layanan RPC
Swoft RPC dapat disebut seperti fungsi asli sebagai Dubbo.
class RpcController { private $userService; public function getList(): array { $result = $this->userService->getList(12, 'type'); return [$result]; } }
Layanan TCP
Swoft juga menyediakan dukungan layanan TCP yang kaya fitur.
<?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 {
Kolam koneksi
Swoft mudah untuk mendefinisikan kumpulan koneksi kinerja tinggi dengan seperti ini:
return [ 'xxx.pool' => [ 'class' => \Swoft\xxx\Pool::class, 'minActive' => 10, 'maxActive' => 20, 'maxWait' => 0, 'maxWaitTime' => 0, 'maxIdleTime' => 60, ] ];
Kompatibel dengan Laravel ORM
Database Swoft sangat kompatibel dengan Laravel ORM, Sangat mudah bagi pengembang PHP untuk digunakan di Swoft.
Layanan microser
Swoft menyediakan satu set komponen tata kelola layanan-mikro yang cepat dibangun, mudah bagi pengembang untuk digunakan.
- Pendaftaran dan Penemuan Layanan
- Pialang layanan
- Konfigurasi terpusat
- Kemampuan pelambatan layanan
class Test { public function func(): string {
Github
https://github.com/swoft-cloud/swoft
Tolok ukur
