0.10.0
New features:
parameters:
shipmonkDeadCode:
debug:
usagesOf:
- App\User\Entity\Address::__constructwith -vvv outputs e.g.:
App\User\Entity\Address::__construct
|
| Marked as alive by:
| entry virtual usage from ShipMonk\PHPStan\DeadCode\Provider\SymfonyUsageProvider (Route method via #[Route] attribute)
| calls App\User\RegisterUserController::__invoke:36
| calls App\User\UserFacade::registerUser:142
| calls App\User\Entity\Address::__construct
|
| Found 2 usages:
| • src/User/UserFacade.php:142
| • tests/User/Entity/AddressTest.php:64 - excluded by tests excluder- Improved possible descendant detection (#151)
- e.g.
new Foo->method()does not markmethodas used onFoochildren anymore
- e.g.
Improvements:
- Skip private constructors only when those have zero params (#159)
- Reduce result cache size (#168)
- Support Symfony's
defaultIndexMethodonAutowireLocator/AutowireIteratorattribute (#161, @ruudk)
Dependencies
- Requires
phpstan/phpstan ^2.1.7(was^2.0.0) (#151)
Breaking changes
ClassMemberUsagenow requiresUsageOrigin, not optionallyClassMethodRef(#165)UsageOriginDetectorwas removed (#165)- use either
UsageOrigin::createRegularorUsageOrigin::createVirtual
- use either
- Virtual usages emitted by
ReflectionBasedMemberUsageProvidernow require note (#171)true=>VirtualUsageData::withNote('why considered used')false=>null
- parameter
trackMixedAccesswas replaced with excluder (#167)
parameters:
shipmonkDeadCode:
- trackMixedAccess: false
+ usageExcluders:
+ usageOverMixed:
+ enabled: true