NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #1245 most downloaded on Packagist
Show unused packages by scanning your code
Last release 8 months ago
30 Jan 2026
Release timing varies
gaps range from 2 weeks to 1.3 years
Most releases are documented
notes for 42 of 48 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
49 releases · first in 2019
github-actions(deps): bump the dependencies group across 1 directory with 3 updates by @dependabot [bot] in #700
SymfonyConfigurationSet by @ToshY in #702shivammathur/setup-php action by @OskarStark in #727Full Changelog: 0.9.5...0.9.6
One column per quarter.
chore: Use 8.1 for build and phar validation by @icanhazstring in #699
Full Changelog: 0.9.4...0.9.5
Remove extra dev files from vendor by @dmitryuk in #690
Full Changelog: 0.9.3...0.9.4
github-actions(deps): bump shivammathur/setup-php from 2.30.0 to 2.32.0 in the dependencies group by @dependabot in #676
Full Changelog: 0.9.2...0.9.3
feat: Allow __root__ as default package name by @icanhazstring in #671
__root__ as default package name by @icanhazstring in #671Full Changelog: 0.9.1...0.9.2
__root__ as default package name by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/671Add support for phpstan/phpdoc-parser v2 by @WyriHaximus in #670
Full Changelog: 0.9.0...0.9.1
chore(deps): require composer-unused/symbol-parser v0.2.2 by @simPod in #605
debug:provided-symbols command by @llaville in #626Full Changelog: 0.8.11...0.9.0
debug:provided-symbols command by @llaville in https://github.com/composer-unused/composer-unused/pull/626Improve user experience when adding additional files by @icanhazstring in #552
$name must not be accessed before initialization by @MarcinGladkowski in #562Full Changelog: 0.8.10...0.8.11
$name must not be accessed before initialization" by @VincentLanglet in https://github.com/composer-unused/composer-unused/pull/562Improve user experience when running composer-unused with composer v1 by @MarcinGladkowski in #539
Full Changelog: 0.8.9...0.8.10
Add ability to define source/vendor dir outside composer.json by @MarcinGladkowski in #522
Full Changelog: 0.8.8...0.8.9
Debug commands to view consumed and defined symbols by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/463
Use correct version in CLI by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/453
Junit formatter by @reinfi in https://github.com/composer-unused/composer-unused/pull/440
Readd progress bar by @MarcinGladkowski in https://github.com/composer-unused/composer-unused/pull/427
Add JsonFormatter with test by @TomasVotruba in https://github.com/composer-unused/composer-unused/pull/398
--ignore-exit-code is used by @pascalheidmann in https://github.com/composer-unused/composer-unused/pull/396Keep the PatternFilter in used state by @nicklog in https://github.com/composer-unused/composer-unused/pull/353
Avoid strpos comparison for php package by @icanhazstring in https://github.com/composer-unused/composer-unused/pull/318
Current supported values: default and github
--output-format option
default and githubgithub can be used to annotate PRCiDetector to change output format according to the current ci environmentsymfony/dependency-injection to leverage autowiringcomposer-unused.php)Lexer\Emulative to use the current php version instead of latest oneis_dir() check from LocalRepository to avoid crashing file_get_contentsbox-project/box versioncomposer.json does not exist in given pathFilter was marked as unused again after being already usedIgnored section againcomposer-unused/symbol-parser to 0.1.7Fixed version output when running bin/composer-unused --version
bin/composer-unused --versioncomposer-json which can be used to parse external projects.
This will default to the current working directory.composer.json is not readablebin/composer-unused to be used as standalone binarylibrary instead of composer-plugincomposer-plugin (will be supported using composer-unused/composer-unused-plugin)7.3Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Added support for psr/log v2 and 3 #200 (thanks to @simPod)
Dropped support for composer v1
Added an InstanceofStrategy which detects usages in instanceof expressions #100
InstanceofStrategy which detects usages in instanceof expressions #100Fixed an issue where ext-ds classes where not recognized as used #88
Added workflow to verify integrity of build phar file
phar filebin/composer-unusedcomposer/composer into root requirements as its required to run bin/composer-unusedAdded phpspec/prophecy-phpunit to remove deprecations warnings of prophecy() with phpunit/phpunit:^9.0
Added --no-progress to suppress progress bar for CI
--no-progress to suppress progress bar for CIbin/composer-unused was unable to detect vendor/autoload.php when run as direct depdendencyAdded bin/composer-unused as another entry point
phar supportbin/composer-unused as another entry pointcomposer/composer into root requirements as its needed to run bin/composer-unusedAdded support to scan for unused php extensions #33 thanks to @marcelthole
Fixed replaced usage on Zend\ServiceManager in configuration files
Zend\ServiceManager in configuration files-d and -p as they could be already in useAdded custom psr/container-interface implementation as a replacement for zendframework/zend-servicemanager
psr/container-interface implementation as a replacement for zendframework/zend-servicemanager--excludeDir|-d and --excludePackage|-p)Fixed support for typo3 packages thanks to @tomasnorre
Fixed support for yii2 packages thanks to @moltam
Fixed issue where composer-unused-dump was created even when not in debug mode #41
Fixed issue where qualified namespaces where not recognized when called from global namespace
Fixed unused scan for symfony-bundle types
symfony-bundle typesFixed an issue where a package could provide an empty as well as a valid namespace
Fixed an issue where a package could provide an empty as well as a valid namespace
{
"autoload": {
"psr-4": {
"": "src/",
"A\\": "src/"
}
}
}
The plugin will exit with a code > 0 if there are unused packages
Fixed an issue where class constant Namespace\Foobar::class was not recognized as usage #29
Namespace\Foobar::class was not recognized as usage #29library #25 composer-schema#typeunused if:
Nothing published for this version
Fixed an issue where only autoload-dev provided a needed namespace
autoload-dev provided a needed namespaceChange the way how the plugin searched for usages
Previously it used only autoload and autoload-dev directives of the projects own composer.json.
This was changed so that now every file matching *.php beside the composer.json will be scanned.
With the exception that vendor is always excluded
--excludeDir|-xd to add additional folders to exclude from scan--excludePackage|-xp to add a package to ignore during scanFixed issue where static calls raised an exception
-vvv to enable debug mode and create a dump fileImproved:
Fixed issue with different composer directives (classmap, files)
Initial Release
Initial Release
Your coding agent can read these notes before it upgrades. Set up the MCP server →