香水电影完整版在线观看未删减|久草在线国产|欧美伊人电影|美女福利视频在线,大开色戒完整版迅雷,久艹久,动画片大尺度未删减电影

軟件開發(fā),網(wǎng)站建設(shè),微信小程序制作,抖音小程序開發(fā)

點(diǎn)

動(dòng)

態(tài)

業(yè)

軟件開發(fā),網(wǎng)站建設(shè),微信小程序制作,抖音小程序開發(fā)
Thinkphp5.1獲取指定類的注釋
發(fā)布時(shí)間:2024-12-09  閱讀量:350

關(guān)于php函數(shù)的注釋獲取,在之前了解到python有__doc__獲取函數(shù)的描述,進(jìn)而探索發(fā)現(xiàn)php也提供獲取函數(shù)注釋的函數(shù);
使用如下:
首先你的注釋要符合標(biāo)準(zhǔn),才能使用php函數(shù)來獲取;
用到的php的反射函數(shù);
ReflectionMethod($class,$func): 此函數(shù)傳入兩個(gè)參數(shù);
$class和$func代表某個(gè)類的某個(gè)函數(shù);
注釋規(guī)范:
/**
* 描述 description
*/
使用函數(shù)獲取為:
$func = new ReflectionMethod($class,$func);
來個(gè)具體的代碼吧,可以copy運(yùn)行看看效果:

<?php
 
class test{
/**
* @cc hello A
*/
public function A(){
echo 'a';
}
}
echo "string";
 
function cc_get_desc($module,$fc){
// $act=A($module);
$act   = new $module();
$func  = new ReflectionMethod($act,$fc);
$tmp   = $func->getDocComment();
 
$flag  = preg_match_all('/@cc(.*?)n/',$tmp,$tmp);
$tmp   = trim($tmp[1][0]);
$tmp   = $tmp !='' ? $tmp:'無';
return $tmp;
}
 
$tmp = cc_get_desc('test','A');
var_dump($tmp);
在公共函數(shù)里面填寫如下方法

/**
* 獲得指定類的注釋 用戶權(quán)限設(shè)置
* @param $model  模塊名稱  例如 admin  shop
* @param $action  控制器名稱 由于用的是 模塊里面的函數(shù)調(diào)用所有將參數(shù)的方向替換 因?yàn)槟0宓谝粋€(gè)是默認(rèn)參數(shù)
* 類的注釋必須卸載定義Class 關(guān)鍵字的前面
*/
function get_class_annotation($action,$model){

  // return $model ."-".$action;

//    appadmincontrollerPower

      $class  = "app\".strtolower($model)."controller\".strtolower($action);
  // return class_exists($class);
  if(class_exists($class)) {
       // ReflectionClass

           $class  = new ReflectionClass($class);
       $tmp = $class->getDocComment();
       // dump($reflect);
       $flag  = preg_match_all('/@name(.*?)n/',$tmp,$tmp);
       $tmp   = trim($tmp[1][0]);
       return    $tmp   = $tmp !='' ? $tmp:'沒有設(shè)置';
   }


}

/**
* 獲得指定類里面指定方法的注釋 用于權(quán)限設(shè)置
* @param $model  模塊名稱  例如 admin  shop
* @param $action  控制器名稱
* @param $function 方法名稱
* @return string  返回注釋
* @throws ReflectionException
* 格式:   /**
            * @name 增加權(quán)限
*/
function get_annotation($model,$action,$function){
   return   $class = "app\".strtolower($model)."controller\".strtolower($action);
   if(class_exists($class)) {
       $reflect = new ReflectionMethod($class, $function);
       $tmp = $reflect->getDocComment();
       $flag = preg_match_all('/@name(.*?)n/', $tmp, $tmp);
       $tmp = trim($tmp[1][0]);
       return $tmp = $tmp != '' ? $tmp : '沒有設(shè)置';
   }
}














大攻防