Вам нужен Composer для асинхронного PHP и HTTP-сервер, такой как ReactPHP или Swoole? - PullRequest
0 голосов
/ 30 апреля 2019

Насколько я понимаю, Composer используется для автозагрузки классов с помощью функции SPL, предоставляемой PHP, или, по крайней мере, для регистрации метода для вызова, когда класс не существует.Это должно происходить при каждом запросе на традиционную настройку с использованием Laravel или CakePHP, например ...

Мой вопрос: как Composer будет работать в ситуации с сервером Swoole HTTP, когда вы можете предварительно загрузить все заранее??Нужен ли вообще Composer в этом контексте?

PHP-сервер Swoole HTTP в основных терминах выглядит следующим образом:

<?php

// Load all your classes and files here?

$http = new swoole_http_server("127.0.0.1", 9501);

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

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

$http->start();

Так что я могу загрузить все до того, как у меня не возникнет необходимости вызывать автозагрузкуscript?

Все классы были бы тогда в глобальной области видимости, таким образом, все предварительно загружено и готово к использованию в функции обратного вызова ->on("request").

1 Ответ

0 голосов
/ 30 апреля 2019

Вы можете использовать composer и его функцию автозагрузки в контексте CLI с Swoole.

Нет изменений в выполнении PHP, поэтому автозагрузчик будет работать просто отлично, просто включите vendor/autoload.php в соответствующий скрипт.

<?php

// Autoloader is now up, you can use new Your/Class;
require_once('vendor/autoload.php'); 

$http = new swoole_http_server("127.0.0.1", 9501);

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

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

$http->start();

Отказ от ответственности: я использую swoole с Laravel, Lumen и пользовательскими решениями (как CLI, так и fastcgi) / web, это прекрасно работает, и нет никаких изменений в том, как вы работаете с PHP в этом контексте.

...