作为程序员一定要保持良好的睡眠,才能好编程

PHP获取代码注释的语句 ReflectionClass

发布时间:2018-03-28


php 获取注释代码的需求

class test{
 
    /**
     * @param  String $str 字符串
     * @return String
     */
    function abc($str){
        return $str;
    }
 
}
 
$obj = new test;
$ref = new ReflectionClass($obj);
$methods = $ref->getMethods();
echo '<pre>';
if($methods){
    foreach($methods as $method){
        echo 'method name: '.$method->getName().PHP_EOL;
        echo 'method params num: '.$method->getNumberOfParameters().PHP_EOL;
        $params = $method->getParameters();
        if($params){
            foreach($params as $param){
                echo 'param name:'.$param->getName().PHP_EOL;
            }
        }
        echo 'method comments: '.$method->getDocComment().PHP_EOL.PHP_EOL;
    }
}
echo '</pre>';


//也是可以这样实现的

$ref=new ReflectionClass("test");

//这样也是可以实现的。


那么说了 获取这些文档有什么用呢,这是可以自动生成文档用的啊


也是有其他场景的:


场景1:


做权限控制   自动添加到  数据库


比如说 获取到控制器类    方法    以及方法的标注


这样就能自动组装sql语句进行数据的插入了。




场景2:

做判断  require|email

通过 doc 注释文档获取到 这个验证需求


然后通过 while 循环  进行判断,




如果不这样写的话,那么好多需求,都是需要进行验证的,就光是验证  if  else  就要写好多的代码。


通过while 循环的方式  就省去了好多的代码。。