TypePHP 编译器 https://swoole.com/aot/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

53 lines
1.6 KiB

<?php
require_once __DIR__ . '/../vendor/autoload.php'; // 添加自动加载器
require_once __DIR__ . '/../src/Build/FileScanner.php';
use TypePhp\Build\FileScanner;
echo "测试 FileScanner 类...\n";
try {
// 创建文件扫描器实例,扫描项目根目录
$scanner = new FileScanner(__DIR__ . '/..', ['.php', '.cc', '.cpp', '.cxx', '.c', '.h', '.hpp']);
// 添加排除模式
$scanner->addExcludePattern('*/tests/*'); // 排除测试目录
$scanner->addExcludePattern('*/vendor/*'); // 排除vendor目录
echo "扫描目录: " . $scanner->getDirectory() . "\n";
// 扫描文件
$files = $scanner->scan();
echo "找到 " . count($files) . " 个文件:\n";
// 只显示前20个文件以避免输出过多
$count = 0;
foreach ($files as $index => $file) {
if ($count >= 20) {
echo "... 还有 " . (count($files) - $count) . " 个文件\n";
break;
}
echo ($index + 1) . ". " . $file . "\n";
$count++;
}
echo "\n带统计信息的扫描:\n";
$result = $scanner->scanWithStats();
echo "总共找到 {$result['count']} 个文件\n";
echo "按扩展名统计:\n";
foreach ($result['stats'] as $ext => $count) {
echo " $ext: $count 个文件\n";
}
// 测试只扫描 PHP 文件
echo "\n只扫描 PHP 文件:\n";
$phpScanner = new FileScanner(__DIR__ . '/..', ['.php']);
$phpFiles = $phpScanner->scan();
echo "找到 " . count($phpFiles) . " 个 PHP 文件\n";
} catch (Exception $e) {
echo "错误: " . $e->getMessage() . "\n";
}