jasny / fqcn-reader
v1.0.0
2018-08-16 01:19 UTC
Requires
- php: >=7.1.0
Requires (Dev)
- jasny/php-code-quality: ^2.0
- phpstan/phpstan: ^0.10.2
- phpstan/phpstan-strict-rules: ^0.10.1
This package is auto-updated.
Last update: 2023-06-09 12:03:28 UTC
README
从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迭代器,如 DirectoryIterator
、RecursiveDirectoryIterator
或 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 }
未定义类的文件将被跳过。