Skip to content

Aesonus/fqcn-reader

 
 

Repository files navigation

Jasny FQCN Reader

Build Status Scrutinizer Code Quality Code Coverage SensioLabsInsight BCH compliance Packagist Stable Version Packagist License

Library to extract fully qualified class name (FQCN) from a PHP source file.

Caveat; only considers one class per source file.

Installation

composer require jasny/fqcn-reader

Usage

Single source file

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");

Interator

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.

About

Library to extract PHP class name from source file

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%