我目前有以下PHP:
$directoryIterator = new RecursiveDirectoryIterator( __DIR__ . '/tests/phpunit/' );
/**
* @var SplFileInfo $fileInfo
*/
foreach ( new RecursiveIteratorIterator( $directoryIterator ) as $fileInfo ) {
if ( substr( $fileInfo->getFilename(), -8 ) === 'Test.php' ) {
$files[] = $fileInfo->getPathname();
}
}
Run Code Online (Sandbox Code Playgroud)
这将创建一个数组,其中包含以/ tests/phpunit中以Test.php结尾的文件的路径.工作得很好,很好.但是现在我还想在/ tests/integration中注册东西.(/ tests中有更多东西,所以我不能简单地浏览整个目录.)我可以复制代码,但那是蹩脚的.所以现在我想弄清楚如何循环两个RecursiveDirectoryIterator实例.这有可能是一种理智的方式吗?
要迭代迭代器,您可以使用AppendIterator类.
$directoryIterator = new RecursiveDirectoryIterator( __DIR__ . '/tests/phpunit/' );
$directoryIterator1 = new RecursiveDirectoryIterator( __DIR__ . '/tests/integration/' );
$iterator = new AppendIterator();
$iterator->append(new RecursiveIteratorIterator( $directoryIterator ));
$iterator->append(new RecursiveIteratorIterator( $directoryIterator1 ));
/**
* @var SplFileInfo $fileInfo
*/
foreach ($iterator as $fileInfo) {
if ( substr( $fileInfo->getFilename(), -8 ) === 'Test.php' ) {
$files[] = $fileInfo->getPathname();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
848 次 |
| 最近记录: |