Dạo gần đây cộng đồng PHP dội lên vì swoole extension trong PHP đặc biệt là sau sự kiện laravel/octane ra đời dựa trên Swoole. Vậy PHP swoole là gì? nó có gì mạnh?. Hôm nay mình sẽ giới thiệu với mọi người.
PHP Swoole là một framework sử dụng event-driven, bất đồng bộ, non-blocking I/O và coroutine vì thế nên hiệu năng của nó rất cao, gấp rất nhiều lần so với PHP mặc định. PHP Swoole được viết bằng ngôn ngữ C/C++ bởi 韩天峰 (Rango) vào tháng 7 năm 2012 và được cài đặt như một PHP extension.
Sử dụng PHP Swoole các bạn có thể tạo ra các ứng dụng có hiệu suất cao, dễ mở rộng và hỗ trợ TCP, UDP, Unix socket, HTTP, WebSockket mà các bạn không cần phải biết nhiều về lập trình non-blocking I/O và nhân linux.
PHP Swoole được thiết kế dựa trên các nguyên tắc của Erlang, Node.js và Netty nhưng dành cho PHP.
Tuy nhiên, do Swoole hoặc động trên Linux Kernel nên hiện tại nó chỉ hoạt động được trên Linux, OS X or Cygwin, WSL.
Hiện tại, tại thời điểm mình viết bài PHP Swoole đang ở version 4.6.4
.
PHP Swoole không giống với mô hình PHP truyền thống, nó chạy ở trên CLI mode trong PHP (giống như node.js nhưng Swoole sử dụng coroutine và không có callback hell giống như node.js).
PHP Swoole sẽ tạo ra các long process để handle các request sử dụng coroutine. Các bạn có thể xem qua 2 hình dưới đây cho dễ hiểu.
Dưới đây là một vài điểm khác của PHP Swoole so với PHP-FPM truyền thống của PHP.
Để kiểm chứng được sức mạnh thực sự của PHP Swoole mình sẽ có demo nho nhỏ và benchmark thử xem kết quả như nào giữa PHP Swoole, PHP-FPM, Node.js.
NodeJS
var http = require('http');
http.createServer(function (request, response) {
response.write('[toidicode.com] Hello world!');
response.end();
}).listen(8000);
PHP-FPM
<?php
echo '[toidicode.com] Hello world!';
PHP Swoole
<?php
use Swoole\Http\Server;
use Swoole\Http\Request;
use Swoole\Http\Response;
$server = new Swoole\HTTP\Server("127.0.0.1", 8082);
$server->on("request", function (Request $request, Response $response) {
$response->end("Hello World\n");
});
$server->start();
Node.js
PHP-FPM
PHP Swoole
Kết quả này có thể không chính xác hoàn toàn, nhưng mình chắc chắn là tại thời điểm hiện tại Swoole đang cho kết quả nhanh nhất so với PHP-FPM và Node.js
Nguồn: https://toidicode.com/php-swoole-la-gi-no-co-gi-manh-479.html
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE