PHP-ReflectionClass-仅适用于当前类的getMethods

亚历克斯·K。

目前,我尝试将PHPUnit集成到我的项目中。为了确保随着时间的推移100%的测试覆盖率,我想检查一下testclass中是否存在要测试的类中的所有方法。所以我想我可以写一些类似的东西

class MyClassTest extends PHPUnit_Framework_TestCase {

    private function _getClassFunctions($class) {
        $class = new ReflectionClass($class);
        return $class->getMethods();
    }

    public function testCompareFunctionCount() {
        $this->assertEquals($this->_getClassFunctions('MyClass'), $this->_getClassFunctions(__CLASS__));
    }
}

但是,ReflectionClass :: getMethods()似乎不仅对类本身的方法进行计数,而且还对所有扩展类进行计数。有没有办法防止这种行为?还是我弄错了什么?我在较旧的文章中读到ReflectionClass :: getMethods()在较旧的PHP版本上无法正常工作,但是我认为它可能现在已修复(那些文章已有4年以上的历史了……)
我使用PHP 5.4.5 。

戴维·康拉德

您必须自己做一些工作:

private function _getClassFunctions($className) {
   $class = new ReflectionClass($className);
   $result = array();
   foreach($class->getMethods() as $method) {
      if ($method->class == $className) {
         $result[]=$method;
      }
   }
   return $result;
}

比较$method->class$className将结果缩小为仅包含在所讨论类中的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP奇怪的行为:ReflectionClass :: isCloneable()调用析构函数?

来自分类Dev

PHP cli仅适用于“ -n”

来自分类Dev

jQuery仅适用于.html文件,而不适用于.PHP文件?

来自分类Dev

仅适用于NTLM和PHP的SSO

来自分类Dev

PHP Include,但仅适用于某些情况

来自分类Dev

OpenCart 错误 500 仅适用于 index.php

来自分类Dev

PHP类不适用于后期元

来自分类Dev

静态类/值仅适用于当前连接/用户

来自分类Dev

PHP jQuery Ajax呼叫仅适用于Chrome,不适用于其他浏览器

来自分类Dev

适用于PHP,不适用于PHPUnit

来自分类Dev

适用于 PHP 但不适用于脚本

来自分类Dev

PHP While ID循环仅适用于第一个ID

来自分类Dev

脚本IF ELSE仅适用于php中的第一个数据

来自分类Dev

jQuery click slidetoggle仅适用于PHP的第一个DIV重复的DIVS

来自分类Dev

jQuery Show / Hide仅适用于php循环的第一行

来自分类Dev

PHP While循环仅适用于三个结果中的前两个?

来自分类Dev

PHP While ID循环仅适用于第一个ID

来自分类Dev

PHP 读取文件夹仅适用于绝对路径

来自分类Dev

PHP Web-Scraping 仅适用于本地机器

来自分类Dev

Google reCaptcha v2 PHP - 仅适用于 file_get_contents()

来自分类Dev

PHP下载不适用于&

来自分类Dev

opendkim命令不适用于PHP

来自分类Dev

无法使Beanstalkd队列适用于PHP

来自分类Dev

适用于PHP的AWS CloudFront托管

来自分类Dev

适用于describeVolumes的AWS PHP

来自分类Dev

更新不适用于php mysql

来自分类Dev

条件不适用于php

来自分类Dev

PHP下载不适用于&

来自分类Dev

PHP:if语句不适用于的表单