refactor: make AbstractConnectionResolver::should_execute()
non-abstract and add ::pre_should_execute()
#3104
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 does this implement/fix? Explain your changes.
This PR refactors the DX around
AbstractConnectionResolver::should_execute()
.More specifically:
AbstractConnectionResolver::$should_execute
is no longer instantiated with a value. Instead::should_execute()
is no longer abstract and returns true by default, so only Resolvers that require customshould_execute
logic need to overload the method.pre_should_execute
logic has been abstracted out of AbstractConnectionResolver's constructor and into a new::pre_should_execute()
method. This overloadable method is then wrapped in a new::get_pre_should_execute()
method which uniformly filters the value with the newgraphql_connection_pre_should_execute
hook.::get_should_execute()
has been modified to call::should_execute()
if the class property has yet to be set. This ensure backwards compatibility and paves the way for future enhancements, such as improving the evaluation logic and filtering in::execute_and_get_ids()
.There are no breaking changes in this PR.
Does this close any currently open issues?
Part of #2749
Any relevant logs, error output, GraphiQL screenshots, etc?
Any other comments?
get_pre_should_execute()
, separating the pre/should_execute logic, and removing unnecessary parameter instantiation, method overloading.Where has this been tested?
Operating System: Ubuntu 20.04 (wsl2 + devilbox + php 8.1.15)
WordPress Version: 6.5.2