404labfr / 404labfr/laravel-impersonate

Laravel Octane support

Aberta
#164 4 comentários 1 reação 0 responsáveis Ver no GitHub
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.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.