PackageTrack
Sign in Get early access

shipmonk/dead-code-detector

Dead code detector to find unused PHP code via PHPStan extension. Can automatically remove dead PHP code. Supports libraries like Symfony, Doctrine, PHPUnit etc. Detects dead cycles. Can detect dead code that is tested.

1.3.3 4.6M downloads/mo #941 most downloaded on Packagist shipmonk-rnd/dead-code-detector

What this package is like to depend on

Last release 17 days ago

06 Aug 2026

Release timing varies

gaps range from 8 days to 3 months

Rarely documented

notes for 10 of 47 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

47 releases · first in 2023

18 releases in the last 12 months

see the full history below

Release timeline

47 releases · Dec 2023 to Aug 2026
2024 2025 2026
Release Pre-release

Releases

latest 47
  1. 1.3.3 06 Aug 2026
    Release notes

    Fixes:

    • Symfony: fix crash on #[Assert\Callback] with closure callback (PHP 8.5) #405
    Open source →
  2. 1.3.2 15 Jul 2026
    Release notes

    Improvements

    • Composer: detect static methods referenced in composer scripts (#397)
    • Symfony: support #[MapRequestPayload] and #[MapQueryString] DTOs (#339)
    Open source →
  3. 1.3.1 08 Jul 2026
    Release notes

    Improvements:

    • Generic:
      • Detect class constants referenced in PhpDocs (#393)
    • Laravel:
      • Detect notification methods (#386, @lorenzolosa)
        • afterSending/shouldSend, plus queueable hooks (viaConnections, viaQueues, withDelay, withMessageGroups, messageGroup, deduplicationId, withDeduplicators) on ShouldQueue notifications
      • Detect reportable/renderable exception methods (#387, @lorenzolosa)
        • context()/render()/report() on any Throwable
      • Support for real-time facades (#395, @lorenzolosa)
        • \Facades\App\SomeClass::someMethod() marks the underlying \App\SomeClass::someMethod() as used
    • Performance
    Open source →
  4. 1.3.0 30 Jun 2026
    Release notes

    New features:

    • PHPat support (#381)
      • test* / #[TestRule] public methods registered under phpat.test tag in PHPStan DIC

    Fixes:

    • Fix crash on debug usagesOf in only-files analysis (#382)
    • PhpBench: handle single-string #[ParamProviders('...')] attribute (#379)
    • Match method usages case-insensitively (#384, #385)
    Open source →
  5. 1.2.1 12 Jun 2026
    Release notes

    Fixes:

    • Fix crash on array callable with unknown part, since PHPStan 2.1.54 (#373, @alfredbez)
    Open source →
  6. 1.2.0 02 Jun 2026
    Release notes

    New features:

    • Nette: support constructor calls of DIC services (#369, @spaze)
      • requires neon/neon to be installed
      • enable via:
    parameters:
        shipmonkDeadCode:
            usageProviders:
                nette:
                    containerNeonPaths:
                        - app/config/services.neon

    Improvements:

    • Symfony: expose public members of #[AsTwigComponent] classes to templates (#366)
    • Laravel: add missing FormRequest methods (#370, @JeftaAtSiip)
    Open source →
  7. 1.1.3 18 May 2026
    Release notes

    Fixes:

    • Treat array_column() string keys as property reads (#362)
    Open source →
  8. 1.1.2 11 May 2026
    Release notes

    Fixes:

    • Symfony: mark constructor of #[AsEventListener] host class as used (#356)
    • export-ignore useless archive files (#355)
    Open source →
  9. 1.1.1 04 May 2026
    Release notes

    Fixes:

    • Symfony: skip services not instantiated by the DIC (#348)
    • Blade: mitigate heavy RAM usage (#349)
      • skip view data members declared in vendor (#350)
      • deduplicate view-data usages across call sites (#352)
    Open source →
  10. 1.1.0 17 Apr 2026
    Release notes

    New features:

    • Laravel: Blade view data support (#333)
      • Marks public members of objects passed to views via view(), View::make()/first(), response()->view(), ->with() as used
      • View composers/creators via View::composer()/View::creator(), including 'Class@method' syntax
    • Symfony forms data_class mapping (#334)
      • Marks accessor methods (get*/set*/is*/has*/can*/add*/remove*), public properties, and __construct on data classes as used
      • Detects data_class from OptionsResolver, AbstractController::createForm(), FormFactoryInterface::create() and related methods
    • Detect property reads via native operations (#332)
      • (array) cast, get_object_vars(), get_mangled_object_vars(), json_encode(), serialize()
      • Respects JsonSerializable, __serialize(), Serializable

    Improvements:

    • Symfony:
      • Resolve string tags in #[AutowireIterator]/#[AutowireLocator] via DIC XML (#336)
        • String tags (e.g. 'app.handler') are now mapped to concrete classes, fixing false positives on defaultIndexMethod/defaultPriorityMethod
        • shipmonkDeadCode.usageProviders.symfony.containerXmlPaths must be set up
      • Support #[AsTwigComponent(template: new FromMethod(...))] (#341)
      • Symfony: support #[MapInput] in console commands (#340)
      • Mark enum cases as used in invokable command parameters (#343)
    • Doctrine:
      • Add missing #[PostRemove] lifecycle callback detection (#337)
      • Add ToolEvents to listener heuristic (#342)
    • PHPUnit:
      • Add cross-class @dataProvider annotation recognition (#338)
    Open source →
  11. 1.0.0 08 Apr 2026

    Nothing published for this version

  12. 0.15.1 06 Mar 2026

    Nothing published for this version

  13. 0.15.0 04 Mar 2026

    Nothing published for this version

  14. 0.14.1 18 Dec 2025

    Nothing published for this version

  15. 0.14.0 25 Nov 2025

    Nothing published for this version

  16. 0.13.5 13 Oct 2025

    Nothing published for this version

  17. 0.13.4 09 Oct 2025

    Nothing published for this version

  18. 0.13.3 01 Sep 2025

    Nothing published for this version

  19. 0.13.2 14 Aug 2025

    Nothing published for this version

  20. 0.13.1 04 Aug 2025

    Nothing published for this version

  21. 0.13.0 21 Jul 2025

    Nothing published for this version

  22. 0.12.4 26 Jun 2025

    Nothing published for this version

  23. 0.12.3 11 Jun 2025

    Nothing published for this version

  24. 0.12.2 22 May 2025

    Nothing published for this version

  25. 0.12.1 20 May 2025

    Nothing published for this version

  26. 0.12.0 16 May 2025

    Nothing published for this version

  27. 0.11.1 15 May 2025

    Nothing published for this version

  28. 0.11.0 04 Apr 2025

    Nothing published for this version

  29. 0.10.2 28 Mar 2025

    Nothing published for this version

  30. 0.10.1 25 Mar 2025

    Nothing published for this version

  31. 0.10.0 21 Mar 2025

    Nothing published for this version

  32. 0.9.2 07 Mar 2025

    Nothing published for this version

  33. 0.9.1 05 Mar 2025

    Nothing published for this version

  34. 0.9.0 04 Mar 2025

    Nothing published for this version

  35. 0.8.1 22 Jan 2025

    Nothing published for this version

  36. 0.8.0 21 Jan 2025

    Nothing published for this version

  37. 0.7.0 23 Dec 2024

    Nothing published for this version

  38. 0.6.0 11 Nov 2024

    Nothing published for this version

  39. 0.5.1 05 Nov 2024

    Nothing published for this version

  40. 0.5.0 04 Nov 2024

    Nothing published for this version

  41. 0.4.0 24 Oct 2024

    Nothing published for this version

  42. 0.3.0 13 Sep 2024

    Nothing published for this version

  43. 0.2.1 05 Sep 2024

    Nothing published for this version

  44. 0.2.0 04 Sep 2024

    Nothing published for this version

  45. 0.1.2 15 Jul 2024

    Nothing published for this version

  46. 0.1.1 05 Jul 2024

    Nothing published for this version

  47. 0.1.0 28 Dec 2023

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive