Refactor directives to value objects for full power of new IDE usab. #149
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.
Prepare release 0.14 here as major for
to get constraint with new minors here.
Resolves #114
Now allows using pretty soon full spectrum of https://blog.jetbrains.com/phpstorm/2019/02/new-phpstorm-meta-php-features/
thanks to value object approach now.
Available directives
Override
By default, most directives used here are "override". Those are also the ones already supported the longest.
For specific string method argument it returns a specific object. That covers a lot of CakePHP's internal magic.
ExpectedArguments
With this you can set default values to chose from for method arguments.
Specify the parameter count as 0-based value.
ExpectedReturnValues
You can also just expected return types for a method.
RegisterArgumentsSet
If you are reusing the same lists for both arguments and return values, you can also
make a set and reuse that in the above directives.
Now you can use it as list value
argumentsSet("mySet")
inside the others.Nesting
Examples
Validator::requirePresence()
Now not just bool true/false, but also the possible "magic strings" are typehinted and usable as single click/enter.