一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

有關PHP中MVC的開發經驗分享

一、入口
入口文件可以是單文件也可以是多文件,我現在用的基本屬多文件,但是入口文件內容基本都是一樣,為以后的修改其它的入口方式做基礎,
復制代碼 代碼如下:
<?php
require 'command/config.php';
require 'command/app.php';
app::run($config);
?>

首先不用說大家也看得出來,加載系統配置文件,然后通過引擎來加載系統配置。
二、引擎
復制代碼 代碼如下:
public function run($config){
header("Content-type:text/html;charset=utf-8");
self::$config = $config; //加載系統配置
self::copyright();
self::testsystem(); //系統環境
self::setsystem(); //設置系統參數
self::incinfo();
if(!IN_WEB){exit('網站正關閉維護中,請稍候訪問!');}
defined('KEHENG_DEBUG') or define('KEHENG_DEBUG',true); // 是否調試模式
self::setpath(); //設置系統路徑
self::getdatabase(); //測試數據庫
self::loadlib(); //加載庫
self::getRouteConfig(); //運行路由并加載控制器
}

引擎里面首先設置配置文件,再測試系統參數,加載系統模塊,取得配置在的網站信息文件,設置網站需要的路徑,測試系統配置里面的數據庫參數,加載庫文件,最后是加載路由獲取請求地址。不知道這樣的流程對不對,只是我根據自己的學習自己編寫的一套而已,但里面卻缺少緩存,具體緩存應該怎么樣的設置。
這里的數據庫測試是根據配置用哪一類型的數據庫,再加載對該類型數據庫操作的封裝文件。
三、路由
以下為上面的最后一個函數,加載控制器文件,根據配置文件獲得請求方式。
復制代碼 代碼如下:
public function getRouteConfig(){
$route_type=self::$config[route][url_type];
switch($route_type){
case 1:
//echo $_SERVER['SCRIPT_NAME'].'<br />';
$query_string=$_SERVER['QUERY_STRING'];
//echo $_SERVER['REQUEST_URI'].'<br />';
$urlstr=$_GET['controller'];
break;
case 4:
$url = end(explode('/', $_SERVER["php_SELF"]));
$urlstr = strtolower(substr($url,0,-4));
break;
}
if(file_exists(Contr_DIR.'Controller.php')){
require Contr_DIR.'Controller.php';
//echo $urlstr;
$template = self::$config['Templates'];
controller::load($urlstr,$template);
}else{
exit('控制器文件不存在');
}
}

四、控制器
控制器文件也蠻簡單,只是根據路由分析出的地址來加載模型文件和視圖文件,
復制代碼 代碼如下:
class controller{
public $obj;
public function load($url,$template){
$config=$template;
if(file_exists(Model_DIR.$url.'.model.php')){
$views = new views;
//echo Model_DIR.$url.'.model.php';
require Model_DIR.$url.'.model.php';
$temp = $config[$url][0];
if($temp!='' && $temp!=null && isset($temp)){
if(file_exists(Templ_DIR.$temp)){
//echo Templ_DIR.$temp;
require Templ_DIR.$temp;
}else{
exit('視圖文件不存在!'.$temp);
}
}else{
exit('此頁未設置顯示模板!'.$temp);
}
unset($views);
}else{
exit('模型文件不存在:'.$url.'.model.php');
}
}
}

但里面有個注意的是模型文件里面需要輸出的數據全部都是通過views這樣一個類進行輸出,包里視圖文件里面所有的系統參數等。不知道,這種方法是不是顯示得多此一舉,原來是想把所有要輸出的數據進行封裝。
其它的模板文件也都是用類進行了封裝,具體怎么寫高人應該都知道了吧,這些只是我的個人見解,但是緩存應該怎么寫,現在還是一個模糊的概念,是不是在讀取數據的時候,方向應該是讀取緩存,然后再判斷緩存是否存在,再判斷是否需要建立緩存呢?具體操作方法還是不是很明白。希望能有高人指點指點。

php技術有關PHP中MVC的開發經驗分享,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 午夜理伦三级理论6080 | 九月婷婷综合婷婷 | 日韩欧美激情视频 | 91在线观 | 中日韩新区 | 成人影院vs一区二区 | 91精品一区二区三区在线播放 | 国产成人亚洲精品91专区手机 | 色综合久久88中文字幕 | 国产亚洲精品拍拍拍拍拍 | 久久老色鬼天天综合网观看 | 国产视频一二区 | 欧美人体大胆艺术 | 97夜夜澡人人双人人人喊女 | 免费超爽大片黄网站 | 美女被男人桶到嗷嗷叫爽网站 | 一本色道久久综合 | 久草小区二区三区四区网页 | 婷婷六月久久综合丁香可观看 | 一区二三国产 | 亚洲五月婷| 欧美激情视频网址 | 天天干一干| 色综合天天综合中文网 | 欧美性xxxx人妖 | 91人前露出精品国产 | 亚洲日本1区2区3区二区 | 毛片久久 | 九九久久亚洲综合久久久 | 碰碰碰人人澡人人爱摸 | 精品视频第一页 | 天天摸天天碰中文字幕 | 伊人久久大香线蕉资源 | 视频黄在线观看 | 99pao强力打造免费高清色 | 青青草一区国产97 | a黄色网| 小说区图片区综合视频区 | 伊人爱爱 | 97影院秋霞国产精品 | 成年网站未满十八禁毛片免费 |