Handle calling magic instantiation methods from within instance methods of the Enum #147
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.
[ ] Added or updated the README.mdRelated Issue/Intent
Here is a actual code we use that did not work as expected:
Calling
$workgroup->allPrioritized()
fails with an error message like this:Even though the call to
self::ROUTINE()
looks like a static method call, PHP actually treats it as dynamic and calls__call
rather than__callStatic
.Changes
Allow such magic instantiation calls from within an enum.
While it is not typical to use the magic instantiation dynamically, it may happen
incidentally when calling the instantiation in an instance method of itself.
Even when using the
static::KEY()
syntax, PHP still interprets this is a call toan instance method when it happens inside of an instance method of the same class.
Breaking changes
None, i took particular care to ensure that dynamic macro's stil work.