我正在构建一个测试工具,以在极难进行单元测试的遗留 PHP 代码目录上执行,尽管我正在使用 PHPUnit 作为该工具。
关于 PHPUnit 的一个很酷的事情是它会将 PHP 通知、警告和错误冒泡到异常中。使用这些知识,我构建了一个工具,include()
可以从 try/catch 块中的目录递归文件并记录任何异常。
问题是,如果我包含数百个文件,这很快就会成为内存占用和崩溃。我考虑过使用它,但我不确定这是否会从内存中“清除”它:
// Include file into buffer
ob_start();
include($file);
// Clear file from buffer
ob_clean();
处理这种性质的事情并适当管理内存/资源的最佳方法是什么?
[编辑]
此外,这是我正在开发的一个内部工具,用于帮助管理数千个包含不可测试(在时间限制意义上)遗留程序代码的文件。
这个想法怎么样?
// 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;