jasny/fqcn-reader

该软件包已被废弃且不再维护。作者建议使用phpdocumentor/type-resolver软件包代替。

从源文件中提取PHP类名的库

v1.0.0 2018-08-16 01:19 UTC

This package is auto-updated.

Last update: 2023-06-09 12:03:28 UTC


README

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

从PHP源文件中提取完全限定类名(FQCN)的库。

注意;每个源文件只考虑一个类。

安装

composer require jasny/fqcn-reader

用法

单个源文件

FQCNReader 允许从PHP源文件中提取类名。

use Jasny\FQCN\FQCNReader;

$reader = new FQCNReader();

$class = $reader->getClass("path/to/source.php");

迭代器

FQCNIterator 是一个OuterIterator,这意味着它将对迭代器应用逻辑进行迭代。迭代器期望遍历源文件。

使用数组中的文件名,可以使用 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
}

或者使用SPL迭代器,如 DirectoryIteratorRecursiveDirectoryIteratorGlobIterator

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
}

未定义类的文件将被跳过。