404labfr / 404labfr/laravel-impersonate
Laravel Octane support
- Linguagem predominante
- PHP
- Estrelas
- 2.3k
- Forks
- 235
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
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.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Avaliação
Esta issue ainda não foi avaliada.