thecodingmachine / class-explorer
Find the list of all your classes and more.
Installs: 1 485 861
Dependents: 5
Suggesters: 0
Security: 0
Stars: 11
Watchers: 9
Forks: 6
Open Issues: 5
Requires
- php: >=7.1
- ext-hash: *
- mouf/classname-mapper: ^1
- psr/simple-cache: ^1
Requires (Dev)
- maglnet/composer-require-checker: ^1.0
- php-coveralls/php-coveralls: ^2.1
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^7.2.7
- squizlabs/php_codesniffer: ^3.2.3
- symfony/cache: ^4.1.4
- thecodingmachine/phpstan-strict-rules: ^0.12
This package is auto-updated.
Last update: 2024-11-13 20:57:03 UTC
README
Discover PHP classes in your project.
This project aim is to offer a set of classes enabling classes/interface/trait discovery in your own project.
Currently, the project contains only one implementation based on scanning files.
GlobClassExplorer
The GlobClassExplorer
will look for all classes in a given namespace.
Usage
$explorer = new GlobClassExplorer('\\Some\\Namespace\\', $psr16Cache, $cacheTtl); $classes = $explorer->getClasses(); // Will return: ['Some\Namespace\Foo', 'Some\Namespace\Bar', ...]
This explorer:
- looks only for classes in YOUR project (not in the vendor directory)
- assumes that if a file exists in a PSR-0 or PSR-4 directory, the class is available (assumes the file respects PSR-1)
- makes no attempt at autoloading the class
- is pretty fast, even when no cache is involved
By default, GlobClassExplorer
will load classes recursively in sub-namespaces. You can prevent it to load classes
recursively by passing false
to the 5th parameter:
$explorer = new GlobClassExplorer('\\This\\Namespace\\Only\\', $psr16Cache, $cacheTtl, null, false);
You can also get a class map using the getClassMap
method.
A class map is an array associating the name of the classes found (in key), to the file they are
linked to (the real path of the file).
$classMap = $explorer->getClassMap(); foreach ($classMap as $class => $file) { echo 'Class '.$class.' found in file '.$file; }