Open Swoole – Một Framework xử lý bất đồng bộ của PHP cực nhanh

08/06/2022 - lượt xem
Chia sẻ
 
Rate this post

Chào các bạn, dạo gần đây cộng đồng PHP náo nhiệt hơ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.

Swoole là gì?

Swoole là một PHP Extension, cài qua PECL và ứng dụng viết ra thường chạy qua PHP Cli, giúp tạo ra một HTTP Server với performance cao. 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. Bạn có thể cài qua hướng dẫn trên trang chủ: https://www.swoole.co.uk/ Ngoài ra, nếu bạn là một người làm Laravel thì không nên bỏ qua Laravel Swoole https://github.com/swooletw/laravel-swoole.

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.

Chúng ta có thể làm gì với Open Swoole?

Có thể sử dụng Open Swoole để viết các dịch vụ TCP, UDP, Unix Socket, HTTP, WebSocket, FastCGI hiệu suất cao, có thể mở rộng, đồng thời với cú pháp PHP. Bạn không cần phải là một chuyên gia về lập trình I / O không chặn và phát triển nhân Linux cấp thấp để tận dụng những gì Open Swoole cung cấp.

So với các khung hoặc phần mềm lập trình Async khác như Nginx, Tornado, Node.js, Open Swoole là một giải pháp PHP Async hoàn chỉnh có hỗ trợ tích hợp cho lập trình không đồng bộ thông qua coroutines, một loạt các mô-đun I / O đa luồng (HTTP Máy chủ, WebSockets, TaskWorkers, Process Pools) và hỗ trợ các ứng dụng khách PHP phổ biến như PDO cho MySQL, Redis và CURL.

Với sức mạnh và hiệu suất mà Open Swoole mang lại, bạn có thể viết các ứng dụng PHP có thể mở rộng cho máy chủ web, phụ trợ API, máy chủ trò chơi, hệ thống trò chuyện, nền tảng CMS, dịch vụ vi mô và dịch vụ web thời gian thực, v.v.

Swoole Có gì khác biệt ?

  • PHP Swoole hỗ trợ TCP, UDP và UnixSocket.
  • PHP Swoole sử dụng Non-blocking I/O với epoll hoặc kqueue.
  • PHP Swoole phân chia được các worker process cho từng CPU để sử dụng được tất cả CPU core.
  • PHP Swoole hỗ trợ kết nối long-live cho Websocket server hoặc TCP/UDP server.
  • PHP Swoole hỗ trợ nhiều giao thức phía server: TCP/UDP/HTTP/HTTP2/WebSocket.
  • PHP Swoole tải trước PHP file vào trong memory.
  • PHP Swoole có thể sử dụng, quản lí trạng thái bên trong memory với “PHP Swoole Memory Management Modules”.

Hello world

<?php
use Swoole\Http\Server;
use Swoole\Http\Request;
use Swoole\Http\Response;

$server = new Swoole\HTTP\Server("127.0.0.1", 9501);

$server->on("start", function (Server $server) {
    echo "Swoole http server is started at http://127.0.0.1:9501\n";
});

$server->on("request", function (Request $request, Response $response) {
    $response->header("Content-Type", "text/plain");
    $response->end("Hello World\n");
});

$server->start();

Bạn quan tâm đến Open Swoole? Bắt đầu với Open Swoole ngay bây giờ!

Bạn cũng có thể kiểm tra Mã lỗi mở Swoole.

Lời kết

Cảm ơn các bạn đã dành thời gian ra đọc. Hi vọng bài viết của mình có thể giúp chút ích cho các bạn.
Nếu thấy hay hãy để chia sẻ giúp mình hoặc để lại email để nhận được các bài viết mới nhất.

Trân trọng cảm ơn !

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm