yiisoft / yii-runner-roadrunner
适用于 RoadRunner 的 Web 应用程序运行器
Requires
- php: ^8.1
- psr/container: ^2.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0|^2.0
- spiral/roadrunner: ^2023.1.0|^2024.1.0
- spiral/roadrunner-cli: ^2.5.0
- spiral/roadrunner-grpc: ^3.0.0
- spiral/roadrunner-http: ^v3.0.0
- spiral/roadrunner-worker: ^3.0.0
- yiisoft/config: ^1.1
- yiisoft/definitions: ^1.0|^2.0|^3.0
- yiisoft/di: ^1.0
- yiisoft/error-handler: ^3.0
- yiisoft/http: ^1.2
- yiisoft/log: ^2.0
- yiisoft/log-target-file: ^3.0
- yiisoft/yii-http: ^1.0
- yiisoft/yii-runner: ^2.0
Requires (Dev)
- grpc/grpc: ^1.50.0
- httpsoft/http-message: ^1.0
- maglnet/composer-require-checker: ^4.2
- phpunit/phpunit: ^10.3
- rector/rector: ^1.0.0
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^5.22
- yiisoft/middleware-dispatcher: ^5.0
- yiisoft/test-support: ^3.0
This package is auto-updated.
Last update: 2024-08-25 14:01:46 UTC
README
Yii RoadRunner 运行器
该包包含一个用于使用 RoadRunner 运行 Yii3 应用的引导程序。
要求
- PHP 8.1 或更高版本。
安装
可以使用 Composer 安装该包
composer require yiisoft/yii-runner-roadrunner
通用用法
获取 RoadRunner
./vendor/bin/rr get
在应用程序根目录中创建 worker.php
use Yiisoft\Yii\Runner\RoadRunner\RoadRunnerHttpApplicationRunner; ini_set('display_errors', 'stderr'); require_once __DIR__ . '/autoload.php'; (new RoadRunnerHttpApplicationRunner( rootPath: __DIR__, debug: $_ENV['YII_DEBUG'], checkEvents: $_ENV['YII_DEBUG'], environment: $_ENV['YII_ENV'] ))->run();
在您的 .rr.yaml
中指定它
version: '3' server: command: "php ./worker.php" rpc: listen: tcp://127.0.0.1:6001 http: address: :8082 pool: num_workers: 8 # Debug mode for the pool. In this mode, pool will not pre-allocate the worker. # Worker (only 1, num_workers ignored) will be allocated right after the request arrived. debug: false middleware: ["static", "headers"] static: dir: "./public" forbid: [".php", ".htaccess"] headers: response: "Cache-Control": "no-cache" logs: mode: production level: warn
注意:官方 配置参考。您还可以在您的 IDE 中激活
RoadRunner
架构以获取自动完成提示。
使用指定的配置运行 RoadRunner
./rr serve
附加配置
默认情况下,RoadRunnerHttpApplicationRunner
配置为与 Yii 应用程序模板一起工作,并遵循 配置组约定。
您可以使用构造函数参数和不可变设置器来覆盖默认配置。
构造函数参数
$rootPath
— 项目根目录的绝对路径。
$debug
— 是否启用调试模式。
$checkEvents
— 是否检查事件配置。
$environment
— 环境名称。
$bootstrapGroup
— 引导配置组名称。
$eventsGroup
— 事件配置组名称。
$diGroup
— 容器定义配置组名称。
$diProvidersGroup
— 容器提供者配置组名称。
$diDelegatesGroup
— 容器代表配置组名称。
$diTagsGroup
— 容器标签配置组名称。
$paramsGroup
— 配置参数组名称。
$nestedParamsGroups
— 包含到配置参数组中的配置组名称。这是递归合并参数所需的。
$nestedEventsGroups
— 包含到事件配置组中的配置组名称。这是反向和递归合并事件配置所需的。
不可变设置器
如果配置实例设置与默认设置不同,您可以指定自定义配置实例
/** * @var Yiisoft\Config\ConfigInterface $config * @var Yiisoft\Yii\Runner\RoadRunner\RoadRunnerHttpApplicationRunner $runner */ $runner = $runner->withConfig($config);
默认容器是 Yiisoft\Di\Container
。但您也可以指定任何实现 Psr\Container\ContainerInterface
的实现。
/** * @var Psr\Container\ContainerInterface $container * @var Yiisoft\Yii\Runner\RoadRunner\RoadRunnerHttpApplicationRunner $runner */ $runner = $runner->withContainer($container);
除了容器中定义的错误处理器外,运行器还使用一个临时错误处理器。需要临时错误处理器来处理配置和容器实例的创建,然后使用您在应用程序配置中配置的错误处理器。
默认情况下,临时错误处理器使用 HTML 渲染器并将日志记录到文件中。您可以按照以下方式覆盖此设置
/** * @var Psr\Log\LoggerInterface $logger * @var Yiisoft\ErrorHandler\Renderer\PlainTextRenderer $renderer * @var Yiisoft\Yii\Runner\RoadRunner\RoadRunnerHttpApplicationRunner $runner */ $runner = $runner->withTemporaryErrorHandler( new Yiisoft\ErrorHandler\ErrorHandler($logger, $renderer), );
您还可以使用自己的 Spiral\RoadRunner\Http\PSR7WorkerInterface
实现(默认是 Spiral\RoadRunner\Http\PSR7Worker
)
/** * @var Spiral\RoadRunner\Http\PSR7WorkerInterface $psr7Worker * @var Yiisoft\Yii\Runner\RoadRunner\RoadRunnerHttpApplicationRunner $runner */ $runner = $runner->withPsr7Worker($psr7Worker);
文档
如果您需要帮助或有任何问题,Yii 论坛是寻求帮助的好地方。您还可以查看其他Yii 社区资源。
许可证
Yii RoadRunner 运行器是免费软件。它遵循BSD许可证条款发布。有关更多信息,请参阅LICENSE
。
由Yii 软件维护。