[10.x] Adds ability to restore/set Global Scopes #46922
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What?
Allows the static array for Global Scopes to be restored by allowing to retrieve and set them all.
Why?
Because the current implementation of Global Scopes, by being static, has some problems on Laravel Octane:
This only adds two new methods to retrieve and set ALL of the Global Scopes. This allows Laravel Octane to save the original list, and restore it before handling the next request, avoiding bleeding or memory leaks.
It doesn't fix the problem with modifying a Scope instance state. This should be documented on Laravel Octane by warning the developer that Scope instances are shared across requests and, if needed, these should be manually "reset" before the next:
BC?
Nope, only additive.