Library to extract fully qualified class name (FQCN) from a PHP source file.
Caveat; only considers one class per source file.
composer require jasny/fqcn-reader
The FQCNReader
allows extracting a class name from a PHP source file.
use Jasny\FQCN\FQCNReader;
$reader = new FQCNReader();
$class = $reader->getClass("path/to/source.php");
The FQCNIterator
is an OuterIterator
, meaning it will iterate
over an iterator applying logic. The iterator expects to traverse over source files.
With the file names in an array, use ArrayIterator
.
use Jasny\FQCN\FQCNIterator;
$sourceFiles = glob('path/to/directory/*.php');
$sourceIterator = new ArrayIteractor($sourceFiles);
$fqcnIterator = new FQCNIterator($sourceIterator);
foreach ($fqcnIteractor as $file => $class) {
// do something with $class
}
Alternatively use SPL Iterators like DirectoryIterator
,
RecursiveDirectoryIterator
or
GlobIterator
.
use Jasny\FQCN\FQCNIterator;
$directoryIterator = new RecursiveDirectoryIterator('path/to/project/');
$recursiveIterator = new RecursiveIteratorIterator($directoryIterator);
$sourceIterator = new RegexIterator($recursiveIterator, '/^.+\.php$/i', RegexIterator::GET_MATCH);
$fqcnIterator = new FQCNIterator($sourceIterator);
foreach ($fqcnIteractor as $file => $class) {
// do something with $class
}
Files that do not define a class are skipped.