国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

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

2024-04-25 20:31:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

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

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

ReflectionClass主要用的方法:

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

getMethod(string) 獲取方法

ReflectionMethod 主要方法:

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

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

3.代碼演示

代碼如下:

<?php 
class IndexAction{
 public function index(){
   echo 'index'."/r/n";
 }
 public function test($year=2012,$month=2,$day=21){
   echo $year.'--------'.$month.'-----------'.$day."/r/n";
 }
 public function _before_index(){
   echo __FUNCTION__."/r/n";
 }
 public function _after_index(){
   echo __FUNCTION__."/r/n";
 }
}

 

//執(zhí)行index方法
$method = new ReflectionMethod('IndexAction','index');
//進(jìn)行權(quán)限判斷
if($method->isPublic()){
 $class = new ReflectionClass('IndexAction');
 //執(zhí)行前置方法
 if($class->hasMethod('_before_index')){
  $beforeMethod = $class->getMethod('_before_index');
  if($beforeMethod->isPublic()){
   $beforeMethod->invoke(new IndexAction);
  }
 }

 $method->invoke(new IndexAction);

 //執(zhí)行后置方法
 if($class->hasMethod('_after_index')){
  $beforeMethod = $class->getMethod('_after_index');
  if($beforeMethod->isPublic()){
   $beforeMethod->invoke(new IndexAction);
  }
 }
}


//執(zhí)行帶參數(shù)的方法
$method = new ReflectionMethod('IndexAction','test');
$params = $method->getParameters();
foreach($params as $param ){
 $paramName = $param->getName();
 if(isset($_REQUEST[$paramName]))
  $args[] = $_REQUEST[$paramName];
 elseif($param->isDefaultValueAvailable())
  $args[] = $param->getDefaultValue();
}
if(count($args)==$method->getNumberOfParameters())
 $method->invokeArgs(new IndexAction,$args);
else
 echo 'parameters is not match!';

ThinkPHP下載地址:http://down.vevb.com/php/73011.html

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 浠水县| 五莲县| 栖霞市| 武川县| 平南县| 惠州市| 南溪县| 光泽县| 灌阳县| 秀山| 保山市| 上高县| 炉霍县| 文成县| 岑巩县| 武威市| 孟津县| 伽师县| 潜江市| 嵩明县| 五家渠市| 黄山市| 宁德市| 清流县| 苍南县| 嘉义市| 富民县| 东乌珠穆沁旗| 阿坝县| 寻乌县| 韩城市| 汶上县| 临洮县| 苍南县| 弥勒县| 藁城市| 佛学| 雅江县| 东明县| 保靖县| 沅陵县|