麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開發(fā) > ThinkPHP > 正文

thinkphp控制器調(diào)度使用示例

2024-09-09 15:20:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這篇文章主要介紹了thinkphp控制器調(diào)度使用示例,需要的朋友可以參考下

1.如何通過(guò)地址欄參數(shù)來(lái)得到模塊名稱和控制器名稱(即使在有路由和開了重寫模塊的情況下)

2.tp是如何實(shí)現(xiàn)前置,后置方法功能模塊,和如何執(zhí)行帶參數(shù)的方法?

php系統(tǒng)自帶的 ReflectionClass,ReflectionMethod 類,可以反射用戶自定義類的中屬性,方法的權(quán)限和參數(shù)等信息,通過(guò)這些信息可以準(zhǔn)確的控制方法的執(zhí)行

ReflectionClass主要用的方法: 

hasMethod(string)  是否存在某個(gè)方法

getMethod(string)   獲取方法

ReflectionMethod 主要方法: 

getNumberOfParameters()  獲取參數(shù)個(gè)數(shù)

getParamters()  獲取參數(shù)信息

3.代碼演示:

  1. <?php  
  2. class IndexAction{ 
  3.  public function index(){ 
  4.    echo 'index'."/r/n"
  5.  } 
  6.  public function test($year=2012,$month=2,$day=21){ 
  7.    echo $year.'--------'.$month.'-----------'.$day."/r/n"
  8.  } 
  9.  public function _before_index(){ 
  10.    echo __FUNCTION__."/r/n"
  11.  } 
  12.  public function _after_index(){ 
  13.    echo __FUNCTION__."/r/n"
  14.  } 
  15.  
  16. //執(zhí)行index方法 
  17. $method = new ReflectionMethod('IndexAction','index'); 
  18. //進(jìn)行權(quán)限判斷 
  19. if($method->isPublic()){ 
  20.  $class = new ReflectionClass('IndexAction'); 
  21.  //執(zhí)行前置方法 
  22.  if($class->hasMethod('_before_index')){ 
  23.   $beforeMethod = $class->getMethod('_before_index'); 
  24.   if($beforeMethod->isPublic()){ 
  25.    $beforeMethod->invoke(new IndexAction); 
  26.   } 
  27.  } 
  28.  
  29.  $method->invoke(new IndexAction); 
  30.  
  31.  //執(zhí)行后置方法 
  32.  if($class->hasMethod('_after_index')){ 
  33.   $beforeMethod = $class->getMethod('_after_index'); 
  34.   if($beforeMethod->isPublic()){ 
  35.    $beforeMethod->invoke(new IndexAction); 
  36.   } 
  37.  } 
  38.  
  39.  
  40. //執(zhí)行帶參數(shù)的方法 
  41. $method = new ReflectionMethod('IndexAction','test'); 
  42. $params = $method->getParameters(); 
  43. foreach($params as $param ){ 
  44.  $paramName = $param->getName(); 
  45.  if(isset($_REQUEST[$paramName])) 
  46.   $args[] = $_REQUEST[$paramName]; 
  47.  elseif($param->isDefaultValueAvailable()) 
  48.   $args[] = $param->getDefaultValue(); 
  49. if(count($args)==$method->getNumberOfParameters()) 
  50.  $method->invokeArgs(new IndexAction,$args); 
  51. else 
  52.  echo 'parameters is not match!'

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 国产高潮好爽好大受不了了 | 日本一区二区久久久 | 毛片在线免费 | 免费国产一级淫片 | 一级毛片电影网 | 特一级毛片 | 欧美一区成人 | 国产精品视频免费网站 | 国产羞羞视频在线观看 | 亚洲精品久久久久www | 久久人人人 | 91社| 毛片在线免费观看网址 | 亚洲第一成av人网站懂色 | 久久6国产| 香蕉成人在线视频 | 色播视频网站 | 一级黄色淫片 | 国产精品久久99精品毛片三a | 国产麻豆久久 | 超碰97在线人人 | 中文字幕偷拍 | 亚洲国产一区二区三区 | 日本爽快片100色毛片视频 | 777zyz色资源站在线观看 | 欧美韩国日本在线 | 国产成人在线观看网站 | 亚洲综合色视频在线观看 | 思思久而久而蕉人 | 亚洲精久| 成年人视频免费 | 久久中文免费 | 日本中文高清 | www.17c亚洲蜜桃| 日日做夜夜操 | 麻豆小视频在线观看 | 久久亚洲精选 | 中国成人在线视频 | 国产色视频在线观看免费 | 成人短视频在线观看免费 | 亚洲一区二区不卡视频 |