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 循环的方式 就省去了好多的代码。。