Since the beginning of this package we have been working on our own parser. Mostly regular expressions spitting each part of a docblock and processing them separately in each tag. But since static analyzers became more popular it became a lot harder to cover all the new formats of types. In type-resolver 1.7 we already started using phpstan's parser to process types. And now in this release we also cover parts of the docblock parsing process with their parser. This will make it easier to keep up with all the new changes and allows us to support more complex type formats.
We do not support all types covered by phpstan. Generics are not fully supported on all notations, we will return an InvalidTag in those cases.
Deprecations
Param tag
We spend a lot of time to cover all the edge cases that we supported in docblocks for many years. However we also noticed that some notations do not really make sense. First notation added to the list is a @param tag without a variable.
@param MyType Here starts the description but $var is ommited
This notation is now deprecated, and support will be removed in the first release of v6.
Static factory interface
We introduced a new factory strategy to make it possible to have more complex factories for tags and keep the implementation simple. Due to this new system of creating tags we can now support external parser to cover the body of a tag to be handled. With this new system the older system of StaticFactories has become deprecated. And will be removed in v6.
Backward compatibility
We introduced all new functionality with backward compatibility in mind. There are no interface changes being made so consumers of the library will not notice anything from the internal changes. However since we introduced a large amount of new types you might notice issues depending on your implementation. Especially when your project reads the types provided by this library.
#5812: Support for string array keys in data sets returned by data provider methods that do not match the parameter names of the test method(s) that use(s) them
Fixed
#5795: Using @testWith annotation may generate PHP Warning: Uninitialized string offset 0
#5818: Calling method() on a test stub created using createStubForIntersectionOfInterfaces() throws an unexpected exception
[10.5.18] - 2024-04-14
Deprecated
#5812: Support for string array keys in data sets returned by data provider methods that do not match the parameter names of the test method(s) that use(s) them
Fixed
#5795: Using @testWith annotation may generate PHP Warning: Uninitialized string offset 0
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the dependencies group with 2 updates: phpdocumentor/reflection-docblock and phpunit/phpunit.
Updates
phpdocumentor/reflection-docblock
from 5.3.0 to 5.4.0Release notes
Sourced from phpdocumentor/reflection-docblock's releases.
... (truncated)
Commits
298d2fe
Merge pull request #364 from phpDocumentor/fix/catch-invalid-type-creation64e172d
Added test for regression on invalid types08acd34
Add test for constant references.67a55cc
Merge pull request #363 from phpDocumentor/fix/malformed-type-definitionsedd5f67
Be more strict about type definitions on paramf359e4f
Fix code style7b2f618
Add test for string value paramsc9b9e93
Merge pull request #360 from phpDocumentor/fix/typeless_paramd3cbc39
Add extra deprecationfc9a233
Implement fallback option for params without variableUpdates
phpunit/phpunit
from 10.5.17 to 10.5.19Release notes
Sourced from phpunit/phpunit's releases.
Changelog
Sourced from phpunit/phpunit's changelog.
Commits
c726f0d
Prepare release8086c07
Closes #5818b82007c
Add tests8c7e59b
Improve TestDox output11e6f46
Merge branch '9.6' into 10.5789a100
Merge branch '8.5' into 9.6eee5718
Update tools41c6588
Fix6b6e153
Merge branch '9.6' into 10.5c4b2075
Merge branch '8.5' into 9.6Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show