ReactPHP 文件系统 - 找不到此安装支持的适配器

ReactPHP FileSystem - No supported adapter found for this installation

我正在尝试 运行 在 PHP 7 和 8 上使用这个简单的代码:

$loop = \React\EventLoop\Factory::create();
$filesystem = \React\Filesystem\Filesystem::create($loop);
$file = $filesystem->file('test.txt');
$file->getContents()->then(function ($contents) {
    echo $contents . PHP_EOL;
});
$loop->run();

installing via composer 之后,但它告诉我缺少 adapter

错误:

PHP Fatal error:  Uncaught RuntimeException: No supported adapter found for this installation in \root\src\Filesystem.php:31
Stack trace:
#0 \root\try.php(6): React\Filesystem\Filesystem::create()
#1 {main}
  thrown in \root\vendor\react\filesystem\src\Filesystem.php on line 31

只需查看异常发生的位置和原因。 (我将在代码示例中使用 react/filesystem:0.1.2。)

React\Filesystem\Filesystem::create() 中抛出了异常。支持的适配器列表来自 React\Filesystem\Filesystem::getSupportedAdapters().

通过这种方式,您将找到定义给定适配器在您的平台上是否可用的方法:

  1. 方法Eio\Adapter::isSupported():
    return substr(strtolower(PHP_OS), 0, 3) !== 'win' && function_exists('proc_open');
    这意味着您的平台不能是 Windows 并且 proc_open() 功能必须存在(即出于安全原因不能被 disable_functions 指令禁用)。

  2. 方法ChildProcess\Adapter::isSupported():
    return extension_loaded('eio');
    这意味着必须安装 eio PHP 扩展,请参阅 installation instructions

对我来说它也不起作用,因为我在 Windows。对于使用 ReactPHP 的开发,通常最好在 Linux 虚拟机上 运行 PHP 以获得更好的兼容性。