Skip to content

Laravel Octane

Nguồn gốc: Bản dịch từ Laravel Octane

Giới thiệu (Introduction)

Laravel Octane tăng tốc hiệu năng ứng dụng bằng cách serve ứng dụng qua application server hiệu suất cao: FrankenPHP, Open Swoole, Swoole, hoặc RoadRunner.

Octane boot ứng dụng một lần, giữ trong bộ nhớ, rồi feed request với tốc độ cực nhanh.

Cài đặt (Installation)

bash
composer require laravel/octane
bash
php artisan octane:install

Server Prerequisites

FrankenPHP

FrankenPHP là application server PHP viết bằng Go. Hỗ trợ early hints, Brotli/Gzip compression, HTTP/3 và modern web features.

RoadRunner

RoadRunner — application server viết bằng Go.

bash
composer require spiral/roadrunner-cli spiral/roadrunner-http

Swoole

Cài extension Swoole PHP qua PECL.

Serving ứng dụng

bash
php artisan octane:start

Mặc định serve tại http://localhost:8000.

Serving qua HTTPS

Cấu hình HTTPS với FrankenPHP hoặc reverse proxy.

Serving qua Nginx

Cấu hình Nginx reverse proxy đến Octane.

Watching File Changes

bash
php artisan octane:start --watch

Worker Count

Chỉ định số worker processes.

Reloading Workers

bash
php artisan octane:reload

Dependency Injection và Octane

Vì Octane boot ứng dụng 1 lần và giữ trong RAM, cần lưu ý:

Container Injection

Không inject application container hoặc request vào constructor singleton.

Request Injection

Không inject Request vào singleton service.

Managing Memory Leaks

Tránh memory leak khi thêm vào array/property static liên tục.

Concurrent Tasks

Octane cho phép chạy nhiều task song song:

php
use Laravel\Octane\Facades\Octane;

[$users, $servers] = Octane::concurrently([
    fn () => User::all(),
    fn () => Server::all(),
]);

Octane Cache

Octane cache cung cấp tốc độ đọc/ghi lên đến 2 triệu operations/giây.

Cache Intervals

Tự động refresh cache theo interval.

Tables

Octane tables (Swoole) cung cấp shared memory tables truy cập nhanh.