Releases: shipmonk-rnd/dead-code-detector
Releases · shipmonk-rnd/dead-code-detector
1.0.0
Immutable
release. Only release title and notes can be modified.
Stable version!
- Detection of all dead members is implemented and stable!
- Dead methods, constants, enum cases and properties
- Thus, no more BC breaks in extension points are expected
- It took ~4 years of development
Performance improvements
- Result cache offloaded to own cache (#319)
- Analysis reusing cache:
- up to ~40% less memory
- up to ~40% faster
- Result cache size: decreased by ~55%
- Analysis reusing cache:
New features:
- Fully new Laravel support (#294)
- Route registration —
Route::get(),post(),put(),patch(),delete(),any(),match(),resource(),apiResource()- Callable array syntax:
[Controller::class, 'method'] - Legacy string syntax:
'Controller@method' - Invokable controllers:
Controller::class
- Callable array syntax:
- Event listeners —
Event::listen(),Event::subscribe() - Auto-discovered event listeners — classes with
handle*methods whose first parameter has a class type - Scheduled jobs —
Schedule::job() - Gate definitions —
Gate::define()(callable + invokable),Gate::policy() - Policy resolution —
$this->authorize()calls resolve policy class via Laravel's namespace convention (Models\→Policies\) - Console commands —
__construct,handleonIlluminate\Console\Commandsubclasses - Jobs —
__construct,handle,failed,middleware,retryUntil,uniqueId,tags,backoff,uniqueVia,displayNameonShouldQueue/Dispatchableclasses - Service providers —
__construct,register,boot - Middleware —
handle,terminate,__construct(detected by first parameter typeIlluminate\Http\Request) - Notifications —
via,toMail,toArray,toDatabase,toBroadcast,toVonage,toSlack - Form requests —
authorize,rules,messages,attributes,prepareForValidation,passedValidation,failedValidation,failedAuthorization - Policies —
before,viewAny,view,create,update,delete,restore,forceDelete(heuristic via\Policies\namespace +Policysuffix) - Mailables —
build,content,envelope,attachments,headers - Broadcast events —
broadcastWith,broadcastAs,broadcastWhen - JSON resources —
paginationInformation - Notifiable routing —
routeNotificationFor*methods - Eloquent features:
- Model methods — constructor,
boot,booted,casts,newFactory - Query scopes —
scope*methods - Relationships — methods returning
Illuminate\Database\Eloquent\Relations\* - Attribute accessors — methods returning
Illuminate\Database\Eloquent\Casts\Attribute - Legacy accessors/mutators —
get*Attribute()/set*Attribute() - Observers —
Model::observe()calls +#[ObservedBy]attribute (all observer event methods) - Factories —
definition,configure - Seeders —
run - Migrations —
up,down
- Model methods — constructor,
- Route registration —
- Symfony improvements
#[Autoconfigure(constructor:, calls:)],#[AutowireCallable],#[TaggedIterator],#[TaggedLocator],#[Required]on properties,#[AsSchedule],#[AsCronTask],#[AsPeriodicTask],!php/enumreferences in config yamls (#317)- Allow explicit
containerXmlPathsconfiguration - no need forphpstan/phpstan-doctrinefor DIC calls analysis (#325) - Symfony UX support:
#[AsTwigComponent]/#[AsLiveComponent](constructor,mount()),#[LiveProp],#[LiveAction],#[LiveListener], lifecycle hooks (#329)
- Reflection improvements
- support member constructors like
new ReflectionMethod(Class, 'method')(#313)
- support member constructors like
Dependencies:
0.15.1
0.15.0
Immutable
release. Only release title and notes can be modified.
New features:
- Dead properties detection (#277, #281, #291)
- Never read and never written properties are detected
- Property hooks full support (#281)
- Now part of transitivity chain detection (both read & write)
- Twig supports template parameters (#275)
- Including transitively referenced ones
- Supports:
- Params passed to
$controller->render('my.twig', ['param' => $viewModel]), - Params returned from
#[Template]controller methods - Params rendered via
Twig\Environment::render()and similar
- Params passed to
- Symfony:
- Nette tester
test*methods,setUp/tearDown,@dataProvider(#299)
Improvements:
- Solution to partial analysis false positives over inline ignores (#292)
ApiPhpDocUsageProvider: only count phpdocs within analysed files (#284)
Breaking changes:
- All dead members are detected by default (#301)
- You can rollback to previous setup via:
parameters:
shipmonkDeadCode:
detect:
deadEnumCases: false
deadProperties:
neverRead: false
neverWritten: false0.14.1
0.14.0
Immutable
release. Only release title and notes can be modified.
New features:
- Support PHP 8.5 features (#269)
- Support phpbench entrypoints (#262, @simPod)
- Support behat entrypoints (#267, @devbanana)
- Support
stream_wrapper_registermagic (#266)
Improvements
- All filepaths are now resolved relative to config file they reside (same as native PHPStan configs) (#219)
usageProviders.symfony.configDirusageExcluders.tests.devPaths
Dependencies
phpstan/phpstannow requires^2.1.23(was^2.1.12) (#254)
Breaking changes
- All classes are final (#237)
0.13.5
0.13.4
0.13.3
Improvements:
- Symfony:
- Support
#[AsTransitionListenerWorkflow]and other Event listener attributes (#248, by @S1ructure) - Support
#[AsMessageHandler]attribute (#247, by @S1ructure)
- Support