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

首頁 > CMS > PhpCMS > 正文

【phpcms-v9】phpcms-v9應用程序創建類phpcms/libs/classes/application.cla

2024-09-10 07:15:54
字體:
來源:轉載
供稿:網友

【phpcms-v9】phpcms-v9應用程序創建類phpcms/libs/classes/application.class.php文件分析.

  1. <?php   
  2. /**  
  3.  *  application.class.php PHPCMS應用程序創建類  
  4.  *  
  5.  * @copyright           (C) 2005-2010 PHPCMS  
  6.  * @license             http://www.phpcms.cn/license/  
  7.  * @lastmodify          2010-6-7  
  8.  */   
  9. class application {   
  10.        
  11.     /**  
  12.      * 構造函數  
  13.      */   
  14.     public function __construct() {   
  15.         $param = pc_base::load_sys_class('param');//構造函數中主要用來對傳遞過來的數據進行過濾處理   
  16.         define('ROUTE_M'$param->route_m());//模塊名   
  17.         define('ROUTE_C'$param->route_c());//控制器   
  18.         define('ROUTE_A'$param->route_a());//方法名   
  19.         $this->init();   
  20.     }   
  21.        
  22.     /**  
  23.      * 調用件事  
  24.      */   
  25.     private function init() {   
  26.         $controller = $this->load_controller();//加載控制器   
  27.         if (method_exists($controller, ROUTE_A)) {//判斷控制器中是否存在某方法   
  28.             if (preg_match('/^[_]/i', ROUTE_A)) {//以_開頭的方法都是protected類型的方法   
  29.                 exit('You are visiting the action is to protect the private action');   
  30.             } else {   
  31.                 call_user_func(array($controller, ROUTE_A));//執行控制器中的方法   
  32.             }   
  33.         } else {   
  34.             exit('Action does not exist.');//提示     方法不存在   
  35.         }   
  36.     }   
  37.        
  38.     /**  
  39.      * 加載控制器  
  40.      * @param string $filename  
  41.      * @param string $m  
  42.      * @return obj  
  43.      */   
  44.     private function load_controller($filename = ''$m = '') {   
  45.         if (emptyempty($filename)) $filename = ROUTE_C;//控制器名   
  46.         if (emptyempty($m)) $m = ROUTE_M;//模塊名   
  47.         //控制器文件   
  48.         $filepath = PC_PATH.'modules'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.$filename.'.php';   
  49.         //如果控制器文件存在   
  50.         if (file_exists($filepath)) {   
  51.             $classname = $filename;//控制器類名   
  52.             include $filepath;//引入控制器文件   
  53.             if ($mypath = pc_base::my_path($filepath)) {//如果存在 MY_*控制器文件   
  54.                 $classname = 'MY_'.$filename;//主要用于二次開發的控制器文件   
  55.                 include $mypath;//引入MY_*.php控制器文件   
  56.             }   
  57.             if(class_exists($classname)){//如果控制器類名存在的話   
  58.                 return new $classname;//實例化控制器類對象   
  59.             }else{   
  60.                 exit('Controller does not exist.');//提示  控制器不存在   
  61.             }  //開源代碼Vevb.com 
  62.         } else {   
  63.             exit('Controller does not exist.');//提示 控制器不存在   
  64.         }   
  65.     }   
  66. }   
  67. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大荔县| 邵东县| 兴和县| 吴旗县| 井冈山市| 西畴县| 仪征市| 古浪县| 东丽区| 南开区| 清徐县| 九龙县| 定日县| 金平| 会宁县| 盱眙县| 瑞安市| 凭祥市| 句容市| 涪陵区| 柏乡县| 新龙县| 福海县| 庆元县| 鹤岗市| 乐陵市| 鄂温| 青岛市| 萍乡市| 永川市| 西乡县| 炉霍县| 吉水县| 湖北省| 潢川县| 房产| 台州市| 大丰市| 鄂伦春自治旗| 通山县| 濮阳县|