我正在构建一个测试工具来执行遗留PHP代码的目录,这些代码极其难以进行单元测试,尽管我正在使用PHPUnit来使用此工具。
关于PHPUnit的一个很酷的事情是,它会将PHP通知,警告和错误冒泡到异常中。利用这些知识,我已经在try / catch块中的目录中构建了一个递归include()
文件的工具,并记录任何异常。
问题是,如果我包含数百个文件,这很快就会成为内存耗尽和崩溃。我考虑过使用它,但我不确定这是否会从内存中“清除”它:
// Include file into buffer
ob_start();
include($file);
// Clear file from buffer
ob_clean();
处理这种性质并适当管理内存/资源的最佳方法是什么?
[编辑]
此外,这是我正在开发的内部工具,用于帮助管理包含 untestable (在时间限制意义上)遗留过程代码的数千个文件。
这是一个想法呢?
// Enable garbage collector (in case this helps?)
gc_enable();
// Get procedural php and execute it
$fileData = file_get_contents($file);
eval($fileData);
// Clear variable
$fileData = null;
答案 0 :(得分:1)
如果您创建一个单独的CLI脚本(" tester"),一次包含一个文件并记录异常,并拥有主脚本(" iterator"迭代/递归到你需要测试的脚本目录,并通过shell为每个文件调用测试器脚本?