composer / class-map-generator
Utilities to scan PHP code and generate class maps.
Fund package maintenance!
packagist.com
Tidelift
composer
Installs: 62 960 043
Dependents: 58
Suggesters: 1
Security: 0
Stars: 162
Watchers: 3
Forks: 14
Open Issues: 0
Requires
- php: ^7.2 || ^8.0
- composer/pcre: ^2.1 || ^3.1
- symfony/finder: ^4.4 || ^5.3 || ^6 || ^7
Requires (Dev)
- phpstan/phpstan: ^1.12 || ^2
- phpstan/phpstan-deprecation-rules: ^1 || ^2
- phpstan/phpstan-phpunit: ^1 || ^2
- phpstan/phpstan-strict-rules: ^1.1 || ^2
- phpunit/phpunit: ^8
- symfony/filesystem: ^5.4 || ^6
README
Utilities to generate class maps and scan PHP code.
Installation
Install the latest version with:
composer require composer/class-map-generator
Requirements
- PHP 7.2 is required.
Basic usage
If all you want is to scan a directory and extract a classmap with all classes/interfaces/traits/enums mapped to their paths, you can simply use:
use Composer\ClassMapGenerator\ClassMapGenerator; $map = ClassMapGenerator::createMap('path/to/scan'); foreach ($map as $symbol => $path) { // do your thing }
For more advanced usage, you can instantiate a generator object and call scanPaths one or more time then call getClassMap to get a ClassMap object containing the resulting map + eventual warnings.
use Composer\ClassMapGenerator\ClassMapGenerator; $generator = new ClassMapGenerator; $generator->scanPaths('path/to/scan'); $generator->scanPaths('path/to/scan2'); $classMap = $generator->getClassMap(); $classMap->sort(); // optionally sort classes alphabetically foreach ($classMap->getMap() as $symbol => $path) { // do your thing } foreach ($classMap->getAmbiguousClasses() as $symbol => $paths) { // warn user about ambiguous class resolution }
License
composer/class-map-generator is licensed under the MIT License, see the LICENSE file for details.