午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > PHP仿tp實現mvc框架基本設計思路與實現方法分析

PHP仿tp實現mvc框架基本設計思路與實現方法分析

熱門標簽:房產中介用的是什么外呼系統 地圖標注專員怎么樣 上海做外呼線路的通信公司 長沙做地圖標注公司 福建銀行智能外呼系統價格 電話機器人銷售主要負責什么 四川保險智能外呼系統供應商 遼寧ai電銷機器人價格 寧波外呼營銷系統

本文實例講述了PHP仿tp實現mvc框架基本設計思路與實現方法。分享給大家供大家參考,具體如下:

仿tp mvc基本設計與簡單實現

一:文件加載常識

變量 常量 函數 類
文件加載的函數或者使用命名空間:require();   require_once();   include();   include_once();
常量:define("DEFINE","");   const constant = "value";
函數:function fun(){}  // global 使用全局變量    局部變量不被外部調用。
類:

?php
class A{
  public $a = 10;
  public function aa(){  // 不能使用一個a是因為,new A 之后 方法a會被自動執行,所以方法名不可以和類名沖突。
    echo $this->a; // 輸出屬性.
  }
  public function __construct(){ // 構造方法,實例化后自動執行,
    echo $this->bb(); // 調用方法。
  }
  public function bb(){
    echo "我是bb";
  }
}
$a = new A;
$a->aa();
class B extends A{ // 繼承 A ,類A是類B的父級。繼承public的,
}
$b = new B;
$b->aa(); // 可以輸出類A里面的屬性。

工廠模式參閱:https://www.jb51.net/article/140658.htm

//-----------------------------工廠模式-------------------------//
class A{
  public $class;   // public $class = $_GET['c']; //類名
  public $method; // public $method = $_GET['m']; //方法
  public function __construct($class,$method){
    // 或者通過 $_SERVER['PATH_INFO']; 轉換得到類名或者方法名(下面講解)。
    $this->class = ucfirst(strtolower($class)).'Controller'; //對類名進行安全處理,并加上控制器后綴
    $this->method = strtolower($method);   //對方法名進行安全處理
    $this->work($this->class,$this->method);
  }
  public function work($class,$method){
    // 把文件命名成 (類名.class.php的形式),就可以通過類名找到文件。
    //include '文件名(文件在別的地方)';    #例如 include './index.php'; 引入文件然后實例化類。
    $c = new $class;  //實例化類
    $c->$method();  //訪問類的方法
  }
}

至此我們可以通過url的 $_GET 參數來解決

例如:http://mvc.com/index.php?h=homev=Indexc=index.html

h為前后臺,v為控制器,c為模板。

$v = $_GET['v'];
$c = rtrim($_GET['c'],".html");
new A($v,$c); // 根據繼承關系再次加載文件。
// extract($arr);  //extract 的作用:從數組中將變量導入到當前的符號表,鍵做變量,值做值!
// compact(); // — 建立一個數組,包括變量名和它們的值
// assign display 實現參閱:https://www.jb51.net/article/140661.htm

class Controller{
  public $array;
  public $key;
  public $val;
  public function assign($key,$val){
    if(array($val)){
      $this->array["$key"] = $val;
    }else{
      $this->array["$key"] = compact($val);
    }
  }
  public function display($tpl = ''){ // 模板為空自動加載。
    $this->assign($this->key,$this->val);
    extract($this->array);
    // 如果模板為空就在這里根據get參數添加或者通過 $_SERVER['PATH_INFO']; 轉換得到。(下面講解)
    if(file_exists($tpl)){ //模板存在就加載文件。
      include $tpl;
    }
  }
}
//繼承總model。這個model名字和控制器model的名字是一樣的。繼承方法同Controller,總model必須需要加上一個return。數據處理的indexmodel可以加return,也可以不加。
class IndexModel extends Model{
  public function index(){
    // 數據處理。
    // 需要返回數據就加上return。
  }
}
class IndexController extends Controller{ // 繼承
  public function index(){
    $m = Model("index");
    echo '實例化后的index方法br>';
    $this->assign('m',$m); // 分配數據。
    $this->display('index.html'); // 模板
  }
}

mvc雖然實現但是不夠人性化,因為每次都要加上get參數,變得很冗長,解決的關鍵在于$_SERVER['PATH_INFO'];

用這個替換掉h m v三個參數。

1. 當輸入url為:http://mvc.com/index.php/home/index/index.html
    這種情況下  index.php 斜線后面的apache會自動認為是一個路徑。
    $_SERVER['PATH_INFO'] =  /home/index/index.html
    第1個斜線 /home        前后臺
    第2個斜線 /index        控制器
    第3個斜線 /index.html  模板文件
    如果后面加有參數例如:?a=18b=38   他不會被加到$_SERVER['PATH_INFO']里面。$_POST 或者 $_GET 也不會加入$_SERVER['PATH_INFO']里面的內容,這樣就可以讓控制參數和數據的參數互不沖突。

2. U 方法的實現。重新改寫$_SERVER['PATH_INFO'] 參數,改變為一個數據。array( 'home', 'Index', 'index');

每次進入入口文件index.php都把他的PHP_INFO參數轉換為數組,在控制器或者其他的地方只要調用這個參數就行了。

// 這里如果做了大小寫的轉換,總控制器里面就不用了。
function bca(){
  $arr = explode('/',ltrim($_SERVER['PATH_INFO'],'/'));
  if(count($arr) == 3){
    $arr[0] = strtolower($arr[0]);
    $arr[1] = ucfirst(strtolower($arr[1]));
    // 判斷后綴是不是 .html
    if(substr($arr[2],-5,strlen($arr[2])) == '.html'){
      $a = explode('.',$arr['2']);
      $arr[2] = strtolower($a[0]);
    }else{
      $arr[2] = strtolower($arr[2]);
    }
    $_SERVER['PATH_INFO'] = $arr;
  }
}
// url方法做控制器或前后臺的跳轉。第三個參數是輸出還是return。默認是直接輸出。
function U($string = '',$method = '',$bool = true){ // true 是直接輸出或者返回,
  // 獲取系統變量。
  $path_info = $_SERVER['PATH_INFO'];
  $script_name = $_SERVER['SCRIPT_NAME'];
  // 判斷中間有沒有 / 以確定參數個數。
  if(strpos($string,'/')){
    $arr = explode('/',$string);
    if(count($arr) == 2){  // 兩個參數的情況。
      $arr[0] = ucfirst(strtolower($arr[0]));
      $arr[1] = strtolower($arr[1]);
      $url = "/{$path_info[0]}/{$arr[0]}/{$arr[1]}.html";
    }else if(count($arr) == 3){ // 三個參數的情況。
      $arr[0] = strtolower($arr[0]);
      $arr[1] = ucfirst(strtolower($arr[1]));
      $arr[2] = strtolower($arr[2]);
      $url = "/{$arr[0]}/{$arr[1]}/{$arr[2]}.html";
    }
  }else{
    $arr = strtolower($string); // 一個參數的情況。
    $url = "/{$path_info[0]}/{$path_info[1]}/{$arr}.html";
  }
  // url 路徑的拼接。
  if($method != ''){
    $u = $script_name.$url.'?'.$method;
    if($bool == true){     echo $u;    }else{     return $u;   }
  }else{
    $u = $script_name.$url;
    if($bool == true){     echo $u;    }else{     return $u;   }
  }
}

3. url重寫,去掉 index.php

打開apache配置文件重寫模塊,LoadModule rewrite_module modules/mod_rewrite.so

根下加入的改寫文件  .htaccess

內容:

IfModule mod_rewrite.c>
 Options +FollowSymlinks
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
/IfModule>

在瀏覽器輸入url:http://mvc.com/home/index/index.html?a=19b=38
    [REDIRECT_STATUS] => 200  重寫狀態ok。

發現 $_SERVER['REDIRECT_URL'];$_SERVER['PATH_INFO']; 參數相同。所以參數后面就可以去掉index.php這安全的問題。

4. 模板替換(思路)

我們會發現有一個我們書寫的模板,里面有 {$arr}  include file="" /> 等,我們把模板文件讀取后通過正則還有字符串把他轉換成正常的php文件。對文件名加密后放到替換后的文件夾下,每次url訪問的時候查看是否有緩存文件,判斷最后修改時間等驗證,

5. 數據緩存(思路)

json_encode() json_decode() file_get_contents() file_put_contents(); unserialize();  serialize(); 等存文文件里面或者memcache redis 等存儲。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP從零開始打造自己的MVC框架之類的自動加載實現方法詳解
  • PHP從零開始打造自己的MVC框架之入口文件實現方法詳解
  • php打造屬于自己的MVC框架
  • PHP的MVC模式實現原理分析(一相簡單的MVC框架范例)
  • php實現最簡單的MVC框架實例教程
  • php實現簡單的MVC框架實例
  • 搭建自己的PHP MVC框架詳解
  • PHP簡單的MVC框架實現方法
  • PHP MVC框架路由學習筆記
  • PHP URL路由類實例
  • php編寫一個簡單的路由類
  • PHP從零開始打造自己的MVC框架之路由類實現方法分析

標簽:佛山 延安 常德 宿遷 工商登記 宜春 深圳 澳門

巨人網絡通訊聲明:本文標題《PHP仿tp實現mvc框架基本設計思路與實現方法分析》,本文關鍵詞  PHP,仿,實現,mvc,框架,基本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP仿tp實現mvc框架基本設計思路與實現方法分析》相關的同類信息!
  • 本頁收集關于PHP仿tp實現mvc框架基本設計思路與實現方法分析的相關信息資訊供網民參考!
  • 推薦文章
    精品亚洲国内自在自线福利| 韩国三级在线播放| 香蕉国产在线视频| 亚洲国产精品一区二区三区| 欧美中日韩一区二区三区| 日韩乱码一区二区| 色呦呦国产精品| 超碰在线观看97| 日本亚洲欧美在线| 在线观看av不卡| 亚洲精品永久www嫩草| 国产在线拍揄自揄拍| 欧美日韩另类在线| 69堂成人精品视频免费| 激情视频在线播放| 欧美日韩国产精品一区二区三区四区 | 亚洲伦理在线观看| 91久久人澡人人添人人爽欧美| 蜜桃网站成人| 91福利在线观看视频| 日韩激情第一页| 第一区免费在线观看| 国产拍欧美日韩视频二区| 亚洲va欧美va国产综合久久| 亚洲天堂一区在线观看| 日韩你懂的在线播放| 日韩精品你懂的| 久久精品人人爽人人爽| 欧美成人中文字幕| 亚洲av人人澡人人爽人人夜夜| 久久婷婷一区二区三区| 69久久夜色精品国产69| 天天操天天舔天天射| 亚洲欧美日韩久久| 欧美日韩一区二| 国产xxxx在线观看| 中文字幕亚洲激情| 成年人网站免费看| 亚洲不卡av一区二区三区| 亚洲一区二区自拍偷拍| 蜜桃伊人久久| 国内免费久久久久久久久久久| 欧美激情久久久久久久| 欧美国产在线视频| 久久精品国产亚洲AV无码男同| 欧美一区二区三区性视频| 国产欧美激情视频| 国产精品传媒在线| 玛丽玛丽电影原版免费观看1977 | 中文字幕在线日韩 | 亚洲老头同性xxxxx| 熟妇人妻无乱码中文字幕真矢织江| 成人av片在线观看| 成人综合国产精品| 国产精品久久久久久免费| 亚洲精品国产精品久久清纯直播| 涩视频在线观看| 中文字幕亚洲视频| 中国老女人av| 99国产麻豆精品| 久久久久天天天天| 性一交一乱一伧老太| 亚洲色图国产精品| 美女福利视频网| 精品国产乱码久久久久久闺蜜 | 天天色影综合网| 欧美日韩久久一区二区| 99日在线视频| 最新中文字幕一区二区三区 | 欧美日韩午夜爽爽| 成+人+亚洲+综合天堂| 亚洲最大成人在线| 五十路在线观看| 欧美亚州一区二区三区| 国产精品第56页| 国产午夜精品视频| 国产a级黄色片| 欧美揉bbbbb揉bbbbb| 日韩欧美色视频| 色婷婷综合视频在线观看| 亚洲美女爱爱视频| 国产精品灌醉下药二区| 日本免费高清一区二区| 亚洲欧美自偷自拍| 国产精品久久久久久av| 亚洲成人精品女人久久久| 国产精品私拍pans大尺度在线 | 亚洲精品色婷婷福利天堂| 神马久久精品综合| 中文字幕亚洲自拍| 波多野结衣亚洲一区二区| 中文字幕亚洲欧美日韩高清| 国产成人免费观看视频| 欧美大学生性色视频| 久久久久久久久久久久国产| 日韩小视频在线观看| 成年人视频在线免费看| 色哟哟网站入口亚洲精品| 国产91国语对白在线| 久久精品视频中文字幕| 亚洲第一精品在线观看| 亚洲精品电影网| 亚洲色偷偷综合亚洲av伊人| 日韩在线不卡视频| 一级aaaa毛片| 69av视频在线播放| 亚洲综合精品国产一区二区三区| 5566成人精品视频免费| 一区二区三区www污污污网站| 国产精品亚洲网站| 国产一区高清在线| 久操手机在线视频| 亚洲精品国产精华液| 拔插拔插华人永久免费| 日韩三级精品电影久久久| 久久免费少妇高潮99精品| 亚州av一区二区| 亚洲xxx在线| 欧美欧美一区二区| 日韩理论片中文av| 狠狠躁狠狠躁视频专区| 欧美三电影在线| 后入内射无码人妻一区| www.日韩免费| 午夜在线观看视频18| 影音先锋在线亚洲| 亚洲精品国产精品乱码不99| 久久久久久久福利| 日韩一级片网址| www.日本精品| 亚洲影院色在线观看免费| 国产日本精品视频| 欧美午夜欧美| 亚洲视频一区二区在线| 日本成人免费视频| 欧美性在线视频| 成人免费毛片嘿嘿连载视频| 小泽玛利亚视频在线观看| 亚洲欧美日韩区| 日本波多野结衣在线| 国产1区2区3区中文字幕| 欧美视频一二三区| 亚洲精品视频在线观看免费视频| 九九九九九精品| 亚洲成年人在线播放| 五月婷中文字幕| 国产成人手机视频| 色妞色视频一区二区三区四区| 日韩有码一区二区三区| 伊人网在线综合| xvideos亚洲| 久久成人av少妇免费| 青青青国产在线视频| 视频在线观看一区二区| 麻豆精品新av中文字幕| 欧美一级特黄a| 久久精品在线视频| 成人av网址在线| jlzzjizz在线播放观看| 日韩美女毛茸茸| 国产精品成人午夜| 中文字幕手机在线观看| 国产高清一区二区三区| 狠狠色狠狠色综合日日五| 无码人妻av一区二区三区波多野| 玖玖精品在线视频| 欧美电影精品一区二区| 久久精品亚洲一区二区| 成人不卡免费视频| 韩国美女主播一区| 国产精品网站在线| 添女人荫蒂视频| 92看片淫黄大片欧美看国产片| 亚洲综合激情网| 黄色av网站免费观看| 国产树林野战在线播放| 国产午夜精品麻豆| 久88久久88久久久| 国产男女猛烈无遮挡a片漫画| 国产精品视频大全| 欧美体内谢she精2性欧美| 在线观看黄色国产| 国产亚洲欧美在线视频| 欧美第一淫aaasss性| 国产精品视频你懂的| 国产特黄大片aaaa毛片| 少妇精品久久久久久久久久| 精品偷拍一区二区三区在线看 | 97久久超碰精品国产| 在线免费看av网站| 先锋影音网一区| 欧美成人vps| 成人黄色一级视频| 无码黑人精品一区二区| 亚洲精品久久久久久一区二区| 国产香蕉97碰碰久久人人| 欧美国产丝袜视频| 国产又粗又猛又爽又| 你懂的av在线| 国产精品海角社区在线观看| 欧美日韩综合不卡| 懂色av一区二区三区蜜臀| 日本黄区免费视频观看| 台湾成人av| 按摩亚洲人久久| 亚洲欧美视频在线观看视频| 91精品国产乱码久久久| 国产xxxxx在线观看| 国产精品视频午夜| 欧美日韩1234| 看片网站欧美日韩| 二区三区四区视频| 五月天综合婷婷| 国内精品国产三级国产在线专 | 人妻一区二区视频| 亚洲免费av网| 美女福利精品视频| 国产精品久久久久影院亚瑟 | 天天爽夜夜爽夜夜爽| 欧美 日韩 国产 成人 在线观看 | 丰满大乳国产精品| 大桥未久一区二区| 欧美另类交人妖| 色婷婷综合久久| 国产精品99精品久久免费| 亚洲黄色激情视频| 久久久久国产免费| 污视频在线免费观看一区二区三区 | 国内爆初菊对白视频| www.99热| 国产伦精品一区二区三区四区视频_| 国产精品中文字幕在线| 日本福利一区二区| 亚洲成va人在线观看| 久久国产日韩| 一区二区精品在线观看| 最近2019中文字幕第三页视频| 亚洲你懂的在线视频| 久久综合图片| 校园春色 亚洲| 国产a级片网站| 国产精品日韩久久久久| 日韩欧美在线123| 26uuu欧美| 国产成人av电影免费在线观看| 丁香社区五月天| 9.1在线观看免费| 超碰在线免费观看97| 国产精品久久久久久久久粉嫩av | 国产成人啪免费观看软件| 日韩欧美国产另类| 久久视频一区二区三区| 亚洲高潮无码久久| 国产精品视频午夜| 亚洲欧洲一区二区三区久久| 欧美日韩另类视频| 成人app下载| 亚洲第一天堂网| 国产视频久久久久久| 欧洲久久久久久| 欧美成年人在线观看| 日本高清不卡视频| 国产91富婆露脸刺激对白| 99久久婷婷国产综合| 久青草视频在线播放| 春色成人在线视频| 亚洲天堂影视av| 精品人伦一区二区三区蜜桃免费| 久久超碰97中文字幕| 国产精品乱码久久久| 白白色免费视频| 欧美国产日韩另类| 熟女少妇精品一区二区| 欧美精品一区二区三区在线四季 | 免费看黄色三级| 国产福利视频在线播放| 欧美在线一区二区三区四区| 91国产在线精品| 日韩电视剧免费观看网站| 日韩欧美中文在线| 99精品热视频| 亚洲图片视频小说| 呻吟揉丰满对白91乃国产区| 久久视频这里有精品| 青青a在线精品免费观看| 色偷偷av亚洲男人的天堂| 色一情一乱一乱一91av| 91网上在线视频| 在线观看视频二区| 国产午夜小视频| 在线看片中文字幕| 黑人性生活视频| 在线观看欧美一区| 日本不卡一区二区三区视频| 欧美激情一区二区三级高清视频| 精品国产乱码久久久久久浪潮 | 视频国产一区二区| 素人fc2av清纯18岁| 99riav国产精品视频| 污污的视频免费观看| 国产美女18xxxx免费视频| 亚洲精品高清无码视频| 91视频最新入口| 激情五月宗合网| 亚洲熟妇国产熟妇肥婆| 欧美大黑帍在线播放| 色综合久久88色综合天天提莫| 日韩av电影在线观看| 日本一区二区不卡高清更新| 蜜桃传媒视频麻豆第一区免费观看| 国产另类自拍| 激情小说网站亚洲综合网 | 永久免费黄色片| 国产农村妇女精品久久| 久久久久久综合网| 欧美一级视频在线| 亚洲欧美综合视频| 国产又粗又猛又色| 国产人妻人伦精品1国产丝袜| 中文字幕一区二区三区人妻电影| a级大片在线观看| 国产探花在线视频| 日韩激情在线播放| 无码人妻黑人中文字幕| 国产一区二区视频免费观看 | 自拍另类欧美| 黄色片免费在线观看视频| 日韩精品―中文字幕| 能看的毛片网站| 欧美xxxxx少妇| 国产7777777| 四虎永久在线精品| 91麻豆视频在线观看| 亚洲av毛片成人精品| 日本麻豆一区二区三区视频| 日本一不卡视频| 国产91对白在线观看九色| 国产精品国产三级国产| 午夜精品影院在线观看| 在线不卡免费av| 国产亚洲aⅴaaaaaa毛片| 欧美多人乱p欧美4p久久| 国产一区二区在线免费| 欧美一区二区综合| 妞干网这里只有精品| www.se五月| youjizz亚洲女人| chinese国产精品| 久久久久久自在自线| 成人深夜在线观看| 日韩毛片一二三区| 欧美一级理论性理论a| 日韩在线观看免费全| 国产精品自在线| 精品一区二区成人免费视频 | 不卡的看片网站| 婷婷中文字幕一区三区| 精品91自产拍在线观看一区| 欧美极品少妇全裸体| 亚洲最大福利视频| 视频一区在线免费观看| 国产三级生活片| 神马午夜精品91| 草逼视频免费看| 97久久精品人人澡人人爽| 欧美性三三影院| 久久久国产成人精品| 99在线高清视频在线播放| 日韩国产一级片| 特级特黄刘亦菲aaa级| 久久精品无码av| 国产一区在线精品| 亚洲h动漫在线| 国产一区二区三区免费视频| 91文字幕巨乱亚洲香蕉| 欧美日韩在线一| 麻豆一区在线观看| 秋霞av鲁丝片一区二区| 不卡视频在线观看| 欧美日韩国产电影| 4p变态网欧美系列| 99亚洲精品视频| 日本黄色网址大全| 粉嫩av一区二区夜夜嗨| 国产精品三级电影| 精品亚洲男同gayvideo网站| 91日韩在线播放| www.99r| 日韩欧美激情视频| 粉嫩久久99精品久久久久久夜| 在线精品视频免费播放| 久久天天躁夜夜躁狠狠躁2022| 91精品国产综合久久久久久丝袜| 成 年 人 黄 色 大 片大 全| 国产色无码精品视频国产| 久久99精品久久久久婷婷| 色狠狠av一区二区三区| 国产亚洲精品一区二区| 欧美中文字幕第一页| 男女爱爱视频网站| 五月天婷婷丁香网| 天天综合天天色| 婷婷国产在线综合| 久久久久日韩精品久久久男男 | 国产高清一区二区三区四区| 天天综合网在线| 日韩欧美国产网站| 人九九综合九九宗合| 成人免费xxxxx在线视频| 亚洲大尺度在线观看|