[5.3] [RFC] CMSPlugin: Lazy subscriber interface and decorator#43658
Closed
Fedik wants to merge 16 commits into
Closed
[5.3] [RFC] CMSPlugin: Lazy subscriber interface and decorator#43658Fedik wants to merge 16 commits into
Fedik wants to merge 16 commits into
Conversation
This reverts commit 08e5c6d.
Member
|
This pull request has been automatically rebased to 5.3-dev. |
Member
Author
|
I will redo this with Lazy Objects |
Contributor
|
But we still support earlier versions of PHP don't we? |
Member
|
Would it not make more sense to have the whole DI container to support lazy objects? Like that, the plugins are only instantiated when actually used. |
Member
Author
I doubt this PR will be merged in 1-2 years, we have plenty of time 😄
I need to see a code or an example to say something about it. In theory maybe "yes". |
4 tasks
Member
Author
|
Alternative pr is there: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary of Changes
Adding LazySybscriber interface and decorator.
The decorator
LazyServiceSubscriberallows to instantiate the plugin with heavy dependencies only when the event is actualy dispatched.The interface
LazySubscriberInterfacealso allows to useLazyServiceEventListener, hovewer the plugin should implement it on its own.Example usage of the decorator for the plugin with heavy dependencies:
Code for
plugins/system/example/services/provider.php.Before:
After:
The decorator can work very nicely with (in future):
But I will update it depend what first will be merged this PR or that PR.
Testing Instructions
Code review by maintainers.
Check that following plugins works as before:
Actual result BEFORE applying this Pull Request
Works
Expected result AFTER applying this Pull Request
Works
Link to documentations
Please select:
References: