mobypolo / roadrunner-lumen
RoadRunner 与 Lumen 集成桥梁
1.0.2
2022-05-25 05:34 UTC
Requires
- laravel/lumen-framework: ~8.0
- nyholm/psr7: ^1.1
- spiral/goridge: ^3.0
- spiral/roadrunner: ^2.0.0
- symfony/psr-http-message-bridge: ^1.2 || ^2.0
Requires (Dev)
- phpunit/phpunit: ~8.3
README
RoadRunner ⇆ Lumen 桥接器
轻松连接 RoadRunner 和 Lumen 应用程序的方法。
🐋 如果你想查看一个使用 RoadRunner 作为 Web 服务器的 Docker 容器中的 Laravel 应用程序示例 - 请查看 这个存储库。
安装
请确保系统(或 Docker 镜像)上已安装 RR 二进制文件。使用以下命令通过 composer 安装此包
$ composer require mobypolo/roadrunner-lumen
需要安装
composer
(如何安装 composer)。
使用方法
在包安装后,将 .rr.yaml
配置文件放置在您的工作目录中,以下是一个简单的 .rr.yaml
配置示例(《完整示例可以在这里找到》)
rpc: listen: tcp://127.0.0.1:6001 server: command: "php /app/vendor/mobypolo/roadrunner-lumen/bin/rr-lumen-worker" # maybe you need to update this path http: address: 0.0.0.0:8080 middleware: ["headers", "gzip"] pool: max_jobs: 4 # feel free to change this headers: response: X-Powered-By: "RoadRunner"
Roadrunner 服务器启动
$ rr serve -c /app/.rr.yaml
已知问题
控制器构造函数
您应该避免在 HTTP 控制器构造函数中使用(在构造函数中创建或解析的实例可以不同请求之间共享)。请在控制器 方法 中使用依赖项解析。
不好
<?php use Illuminate\Http\Request; use Illuminate\Http\Response; use App\Http\Controllers\Controller; class UserController extends Controller { /** * The user repository instance. */ protected $users; /** * @var Request */ protected $request; /** * @param UserRepository $users * @param Request $request */ public function __construct(UserRepository $users, Request $request) { $this->users = $users; $this->request = $request; } /** * @return Response */ public function store(): Response { $user = $this->users->getById($this->request->id); // ... } }
好
<?php use Illuminate\Http\Request; use Illuminate\Http\Response; use App\Http\Controllers\Controller; class UserController extends Controller { /** * @param Request $request * @param UserRepository $users * * @return Response */ public function store(Request $request, UserRepository $users): Response { $user = $users->getById($request->id); // ... } }
支持
如果您发现任何包错误,请在当前存储库中 创建一个问题。
许可
MIT 许可证(MIT)。有关更多信息,请参阅 LICENSE
。完全受 eplightning 和 Spiral Scout 启发。