PHP中打开了多少个文件?

Bil*_*win 3 php file-io unit-testing

PHP中是否有一个函数来查询打开文件的数量?

有点像memory_get_usage()但是对于打开的文件.

我正在运行Zend Framework的单元测试套件.问题是,在完成Zend_Search_Lucene的测试后,后续测试开始失败.但是,如果我跳过Zend_Search_Lucene测试,所有测试套件都会成功.

我想证明Zend_Search_Lucene(或任何其他测试套件)打开太多文件而不是自己清理.我认为PHP可能只是简单地报告打开了多少文件.但在搜索PHP手册和谷歌20分钟后,我找不到任何此类功能.

Ant*_*nna 7

PHP中没有这样的功能.

但也有其他选择.如果您正在运行linux/unix/OSX,那么从命令行运行lsof可以为您提供该信息.

这可以与PHPUnit的自定义测试监听器结合使用 - 我在另一个问题下描述了这种方法 - 如何将PHPUnit包装起来控制命令行报告?

PHPUnit_Framework_TestListener接口具有startTest(),endTest(),startTestSuite(),endTestSuite()等方法.您可以从这些方法执行对lsof的shell_exec调用,并在每个test/testsuite之前和之后打印出有趣的数字.