Документация/Запуск приложения/Swoole

Swoole

Open Swoole (ранее имевший название Swoole) — это высокопроизводительная платформа для асинхронного запуска подпрограмм на PHP.

Swoole устанавливается как расширение для PHP. На данный момент Swoole поддерживается только для Linux и Mac

Стоит иметь в виду, что Swoole не работает с xDebug, самым популярным инструментом отладки в экосистеме PHP, а также плохо совместим с некоторыми другими инструментами профилирования и мониторинга.

Для правильной работы приложения, запущенного при помощи этой технологии, оно должно быть разработано с поддержкой асинхронного режима.

В асинхронном режиме переиспользуются загруженные конфигурации фреймворка, классы, инициализированные сервисы, кешированные данные, что значительно ускоряет работу.
Но вместе с этим есть характерные особенности, такие как необходимость больше следить за утечками памяти и устранять блокирующие операции, также многие из привычных сторонних библиотек не поддерживают асинхронный режим.
Хранение состояния (state) в логических частях приложения становится нежелательным, особенно, если оно связано с запросом.

Интерфейс RollbackInterface фреймворка предназначен для сброса состояния после каждого асинхронного запроса.

Для Swoole необходимо будет изменить файл /public/index.php, чтобы фреймворк HLEB2 выполнялся в цикле. Базовый рабочий пример:

<?php
// File /public/index.php

// use Swoole\Http\{Request, Response, Server};
use OpenSwoole\Http\{RequestResponseServer};

include 
__DIR__ "/../vendor/autoload.php";

$http = new Server('127.0.0.1'9504);
$http->set([
    
'log_file' => '/dev/stdout'
]);

// Framework initialization outside the loop.
$framework = new Hleb\HlebAsyncBootstrap(__DIR__);

$http->on('request', function ($requestResponse $response) use ($framework) {
    
// Getting an object with a response.
    
$res $framework->load($request)->getResponse();
    foreach (
$res->getHeaders() as $name => $header) {
        
$response->header($name$header);
    }
    
$response->status($res->getStatus(), (string)$res->getReason());
    
$response->end($res->getBody());
});

$http->start();

Сервер Swoole запускается консольной командой:

$php ./public/index.php

Согласно настройкам, приложение будет доступно по адресу:
http://localhost:9504

Сервер RoadRunner Изпользование хостинга

Страница создана: @fomiash
К началу страницы