一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

PHP打造屬于自己到MVC框架

 goodwangLib 2019-01-22

一、文件結(jié)構(gòu) 
建立3個文件夾 
controller文件夾存放控制器文件 
view文件夾存放視圖文件 
model文件夾存放數(shù)據(jù)文件 
建立1個index.php 作為唯一入口 
二、控制器 
我們在controller文件夾下建立一個democontroller.php文件,文件內(nèi)容如下 

代碼如下:

class DemoController 

function index() 

echo('hello world'); 


/* End of file democontroller.php */ 


這個文件里面我們只是建立了一個名為DemoController的對象并包含一個index的方法,該方法輸出hello world。下面在index.php中執(zhí)行DemoController中index方法。 
index.php的代碼如下 

代碼如下:

require('controller/democontroller.php'); 
$controller=new DemoController(); 
$controller->index(); 
/* End of file index.php */ 


運行index.php,ok如愿我們看到了我們久違的hello world。這兩個文件非常簡單,但也揭示了一點點mvc的本質(zhì),通過唯一入口運行我們要運行的控制器。當然controller部分應該是由uri來決定的,那么我們來改寫一下index.php使他能通過uri來決定運行那個controller。 
index.php改寫代碼如下: 

代碼如下:

$c_str=$_GET['c']; 
//獲取要運行的controller 
$c_name=$c_str.'Controller'; 
//按照約定url中獲取的controller名字不包含Controller,此處補齊。 
$c_path='controller/'.$c_name.'.php'; 
//按照約定controller文件要建立在controller文件夾下,類名要與文件名相同,且文件名要全部小寫。 
$method=$_GET['a']; 
//獲取要運行的action 
require($c_path); 
//加載controller文件 
$controller=new $c_name; 
//實例化controller文件 
$controller->$method(); 
//運行該實例下的action 
/* End of file index.php */ 


在瀏覽器中輸入http://localhost/index.php?c=demo&a=index,得到了我們的hello world。當然如果我們有其他的controller并且要運行它,只要修改url參數(shù)中的c和a的值就可以了。 
這里有幾個問題要說明一下。 
一、php是動態(tài)語言,我們直接可以通過字符串new出我們想要的對象和運行我們想要的方法,即上面的new $c_name,我們可以理解成new 'DemoController',因為$c_name本身的值就是'DemoController',當然直接new 'DemoController'這么寫是不行的,其中的'DemoController'字符串必須通過一個變量來中轉(zhuǎn)一下。方法也是一樣的。 
二、我們在url中c的值是demo,也就是說$c_name 的值應該是demoController呀,php不是區(qū)分大小寫嗎,這樣也能運行嗎?php區(qū)分大小寫這句話不完整,在php中只有變量(前面帶$的)和常量(define定義的)是區(qū)分大小寫的,而類名方,法名甚至一些關(guān)鍵字都是不區(qū)分大小寫的。而true,false,null等只能全部大寫或全部小寫。當然我們最好在實際編碼過程中區(qū)分大小寫。 
三、視圖 
我們在前面的controller中只是輸出了一個“hello world”,并沒有達到mvc的效果,下面我將在此基礎(chǔ)上增加視圖功能,相信到這里大家基本已經(jīng)能想到如何添加視圖功能了。對,就是通過萬惡的require或者include來實現(xiàn)。 
首先我們在view文件夾下建立一個index.php,隨便寫點什么(呵呵,我寫的還是hello world)。之后我們改寫一下我們之前的DemoController。代碼如下: 

代碼如下:

class DemoController 

function index() 

require('view/index.php'); 


/* End of file democontroller.php */ 


再在瀏覽器中運行一下,看看是不是已經(jīng)輸出了我們想要的內(nèi)容了。 
接著我們通過controller向view傳遞一些數(shù)據(jù)看看,代碼如下: 

代碼如下:

class DemoController 

function index() 

$data['title']='First Title'; 
$data['list']=array('A','B','C','D'); 
require('view/index.php'); 


/* End of file democontroller.php */ 


view文件夾下index.php文件代碼如下: 

代碼如下:

 
 
demo 
 
 

 
foreach ($data['list'] as $item) 

echo $item.'
'; 

?> 
 
 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲精品中文字幕熟女| 欧美欧美日韩综合一区| 免费国产成人性生活生活片| 免费播放一区二区三区四区| 99久久国产精品免费| 色哟哟精品一区二区三区| 亚洲免费观看一区二区三区| 欧美日韩国产自拍亚洲| 亚洲欧美日韩色图七区| 日本一区二区三区黄色| 亚洲中文字幕在线综合视频| 好骚国产99在线中文| 亚洲av一区二区三区精品| 精品伊人久久大香线蕉综合 | 欧美一区日韩一区日韩一区| 大香蕉精品视频一区二区| 亚洲精品熟女国产多毛| 少妇特黄av一区二区三区| 欧美色婷婷综合狠狠爱| 日本一本在线免费福利| 欧美日韩国产精品第五页| 精品视频一区二区三区不卡| 国产日产欧美精品视频| 亚洲av熟女国产一区二区三区站| 午夜精品在线观看视频午夜| 亚洲最新的黄色录像在线| 国产精品白丝一区二区| 国产一区二区三区草莓av| 欧美日韩国内一区二区| 久久这里只有精品中文字幕| 国产精品亚洲二区三区| 又黄又硬又爽又色的视频| 国产亚洲精品一二三区| 亚洲国产天堂av成人在线播放| 欧美成人一区二区三区在线| 福利专区 久久精品午夜| 精品亚洲av一区二区三区| 国产亚洲欧美另类久久久| 国产传媒欧美日韩成人精品| 国产精品免费精品一区二区| 午夜福利视频偷拍91|