404labfr / 404labfr/laravel-impersonate
Laravel Octane support
- 主要语言
- PHP
- 星标
- 2.3k
- 派生
- 235
- PR 合并指标
- 30 天内没有已合并 PR
描述
Laravel Impersonate does not work with Laravel Octane. This manifests as several different errors concerning the `$app` container missing expected values when impersonating and leaving impersonation, from both the `ImpersonateManager` and `ImpersonateController`.
I'm seeing two points where this is an issue:
1. The singleton in the `ImpersonateServiceProvider` has the app container passed to the constructor. [This doesn't work in the Octane paradigm](https://laravel.com/docs/9.x/octane#container-injection) -- the container is adjusted for every request, so a fresh copy is needed.
- I'm not sure if the singleton is strictly needed? I've worked around this by extending the service provider and reimplementing `register()` without that.
1. The constructor in `ImpersonateController` sets the `manager` property. It seems like the constructors for controllers are only called once when Octane boots, which is leading to the app container inside that manager instance being stale.
- Injecting it into the take/leave methods individually instead of setting it in the constructor should avoid the issue.
If you are open to a PR, I would be happy to send one.
贡献指南
这个仓库没有索引到贡献指南
评估
这个 Issue 还没有评估数据。