最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2014年02月24日 11:36:22   作者:  
這篇文章主要介紹了thinkphp控制器調(diào)度使用示例,需要的朋友可以參考下

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

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

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

ReflectionClass主要用的方法: 
hasMethod(string)  是否存在某個方法
getMethod(string)   獲取方法

ReflectionMethod 主要方法: 
getNumberOfParameters()  獲取參數(shù)個數(shù)
getParamters()  獲取參數(shù)信息

3.代碼演示

復(fù)制代碼 代碼如下:

<?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');
//進行權(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!';

相關(guān)文章

  • Laravel框架創(chuàng)建路由的方法詳解

    Laravel框架創(chuàng)建路由的方法詳解

    這篇文章主要介紹了Laravel框架創(chuàng)建路由的方法,包括基礎(chǔ)路由、多請求路由、路由參數(shù)、輸出視圖等相關(guān)原理與使用方法,需要的朋友可以參考下
    2019-09-09
  • Laravel 創(chuàng)建可以傳遞參數(shù) Console服務(wù)的例子

    Laravel 創(chuàng)建可以傳遞參數(shù) Console服務(wù)的例子

    今天小編就為大家分享一篇Laravel 創(chuàng)建可以傳遞參數(shù) Console服務(wù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • laravel 修改記住我功能的cookie保存時間的方法

    laravel 修改記住我功能的cookie保存時間的方法

    今天小編就為大家分享一篇laravel 修改記住我功能的cookie保存時間的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • php根據(jù)分類合并數(shù)組的方法實例詳解

    php根據(jù)分類合并數(shù)組的方法實例詳解

    在php中如果是簡單的數(shù)組合并有很多的方法,但是我今天要求是根據(jù)數(shù)組ID然后重新合并數(shù)組,是要根據(jù)分類來操作
    2013-11-11
  • Zend Framework教程之連接數(shù)據(jù)庫并執(zhí)行增刪查的方法(附demo源碼下載)

    Zend Framework教程之連接數(shù)據(jù)庫并執(zhí)行增刪查的方法(附demo源碼下載)

    這篇文章主要介紹了Zend Framework教程之連接數(shù)據(jù)庫并執(zhí)行增刪查的方法,結(jié)合實例形式詳細分析了Zend Framework數(shù)據(jù)庫的配置及執(zhí)行增刪改查等操作的相關(guān)實現(xiàn)方法,需要的朋友可以參考下
    2016-03-03
  • php二維數(shù)組排序詳解

    php二維數(shù)組排序詳解

    二維數(shù)組排序排序在php中也提供了一個函數(shù)array_multisort就可以直接排序了,下面我來介紹除了全使用array_multisort 對數(shù)組進行排序我們還寫了一些自定二維數(shù)組排序方法
    2013-11-11
  • Laravel中使用Queue的最基本操作教程

    Laravel中使用Queue的最基本操作教程

    Laravel隊列服務(wù)為各種不同的后臺隊列提供統(tǒng)一的API,下面這篇文章主要給大家介紹了關(guān)于Laravel中使用Queue的最基本操作教程,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12
  • Yii2創(chuàng)建多界面主題(Theme)的方法

    Yii2創(chuàng)建多界面主題(Theme)的方法

    這篇文章主要介紹了Yii2創(chuàng)建多界面主題(Theme)的方法,結(jié)合實例形式詳細分析了Yii2創(chuàng)建多界面主題的步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2016-10-10
  • 基礎(chǔ)的WordPress插件制作教程

    基礎(chǔ)的WordPress插件制作教程

    這篇文章主要介紹了基礎(chǔ)的WordPress插件制作教程,包括基本的使用ajax提交數(shù)據(jù)的實現(xiàn),需要的朋友可以參考下
    2015-11-11
  • 使用php-timeit估計php函數(shù)的執(zhí)行時間

    使用php-timeit估計php函數(shù)的執(zhí)行時間

    當(dāng)我們在使用php性能優(yōu)化的時候,需要知道某個函數(shù)的執(zhí)行時間,在python中,我們有timeit模塊給我們實現(xiàn),在php有沒有類似的模塊?接下來,小編給大家分享我寫的一個簡單timeit函數(shù),需要的朋友可以參考下
    2015-09-09

最新評論

兴海县| 青田县| 茂名市| 什邡市| 屏山县| 临泉县| 岐山县| 大田县| 特克斯县| 墨脱县| 河北区| 蒙城县| 拜城县| 阳泉市| 银川市| 麻阳| 松原市| 方山县| 永昌县| 宁陕县| 龙胜| 天镇县| 衡阳县| 东光县| 衡阳市| 高州市| 阿鲁科尔沁旗| 巴南区| 长阳| 乌审旗| 鲜城| 鄯善县| 威信县| 林西县| 沾益县| 榆树市| 太原市| 清丰县| 阜新| 昆山市| 特克斯县|