PHP高級(jí)課(MVC框架)筆記_第1頁
PHP高級(jí)課(MVC框架)筆記_第2頁
PHP高級(jí)課(MVC框架)筆記_第3頁
PHP高級(jí)課(MVC框架)筆記_第4頁
PHP高級(jí)課(MVC框架)筆記_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 PHP(MCV)框架筆記一1. MVC概念與作用1.MVC是一種非常重要的設(shè)計(jì)模式,是三個(gè)字詞的縮寫,分別為:模型(Model)、視圖(View)和控制器(Controller)2.MVC模式的目的就是實(shí)現(xiàn)web系統(tǒng)的職能分工,它強(qiáng)制性使應(yīng)用程序的輸入、處理和輸出分開,可以各自處理自己的任務(wù),是一種分層的概念.二.MVC模式的工作原理1.視圖(view)2.模型(model)3.控制器(controller)4.MVC的設(shè)計(jì)思路是把一個(gè)應(yīng)用的輸入、處理、輸出流程按照model、view和controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層(模型層,視圖層,控制層).三.MVC模式的優(yōu)

2、點(diǎn)1. MVC是構(gòu)筑軟件非常好的基本模式,至少將業(yè)務(wù)處理與顯示分離,強(qiáng)迫將應(yīng)用分為模型、視圖及控制層,使得你會(huì)認(rèn)真考慮應(yīng)用的額外復(fù)雜性,把這些想法融入架構(gòu)中,增加了應(yīng)用的可拓展性,如果能把握這一點(diǎn),mvc模式會(huì)使你的應(yīng)用更加強(qiáng)壯,更加有彈性,更加個(gè)性化四.MVC的缺點(diǎn)1.對(duì)開發(fā)人員的要求比較高2.MVC是一種基本的設(shè)計(jì)模式3.視圖和模式的嚴(yán)格分離可能使得調(diào)試難度較高,但是比較容易發(fā)現(xiàn)錯(cuò)誤五.什么是框架1.框架就是一個(gè)系統(tǒng)的半成品,是在給定的問題領(lǐng)域內(nèi),實(shí)現(xiàn)了一個(gè)應(yīng)用程序的一部分設(shè)計(jì),是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件以及構(gòu)件實(shí)例間交互的方法,并且提供了豐富的組件庫,只增加了一些內(nèi)

3、容或調(diào)用一些提供好的組件就可以完成自己的系統(tǒng)六.MVC采用的是單一的入口文件1.如:http:/localhost/lamp120/mvc/index.php?m=stu&a=add /開打?qū)W生信息的添加頁面1.1其中的M值stu表示訪問的是stuCinteroller a的add表示是方法(動(dòng)作) 就是訪問stuAction的add方法2.mvc通過請(qǐng)求訪問了控制層C,C調(diào)度M模型獲取我們所需要的信息數(shù)據(jù),然后再去加載V視圖將結(jié)果整合后響應(yīng)給我們3.mvc是一種設(shè)計(jì)模式,不是框架,使用mvc設(shè)計(jì)的模式搭建的項(xiàng)目架構(gòu)才叫框架.七.創(chuàng)建目錄1.ORG 第三方擴(kuò)展類2.Model M(模型

4、)層目錄(M)3.controller C(控制)層目錄(C)4.view V(視圖) 層目錄(Smarty的模板目錄)5.public公共資源目錄6.libsSmarty庫(解壓到這里即可)7.view_cSmarty模板編譯目錄(可選)8.cacheSmarty靜態(tài)緩存目錄(可選)9.configs 配置文件目錄七.將自己寫好的數(shù)據(jù)庫操作類放到model目錄下model/model.class.php八.在ORG目錄下創(chuàng)建一個(gè)tpl.class.php的smarty子類,用于初始化smarty(等同于以前的init.php)代碼如下:1./Smarty信息的初始化類class Tpl ex

5、tends Smartypublic function _construct()parent:_construct(); /構(gòu)造父類2. /初始化Smarty對(duì)象中屬性:3. $this->template_dir = "view"/smarty模板目錄$this->compile_dir = "view_c"/smarty模板編譯目錄$this->config_dir = "configs"/smarty配置文件目錄$this->cache_dir = "cache"/smarty模板靜態(tài)

6、緩存目錄/$this->caching = true;/是否開啟靜態(tài)緩存/$this->cache_lifetime = 3600;/靜態(tài)緩存時(shí)間(秒)/指定定界符$this->left_delimiter="<"/左定界符$this->right_delimiter=">"/右定界符9. 在controller目錄下創(chuàng)建Controller類,繼承Tpl類,文件名叫:controller.class.php 代碼如下:/Controller的控制基類class Controller extends Tplpublic

7、 function _construct()parent:_construct();/*Controller初始化方法(在這個(gè)方法里根據(jù)參數(shù)a的值決定調(diào)用對(duì)應(yīng)的方法) * */public function init()/獲取a參數(shù)的值$a = isset($_GET"a")?$_GET"a":"index" /默認(rèn)值為index/判斷當(dāng)前Controller是否存在此方法if(method_exists($this,$a)/調(diào)用此方法$this->$a();elsedie("沒有找到$a對(duì)應(yīng)的方法");十.

8、在最外層,創(chuàng)建一個(gè)index.php的入口文件<?php/網(wǎng)站的主入口程序/自動(dòng)加載類function _autoload($name)$name = strtolower($name);/轉(zhuǎn)成小寫if(file_exists("./controller/$name.class.php")require("./controller/$name.class.php");elseif(file_exists("./model/$name.class.php")require("./model/$name.class.php

9、");elseif(file_exists("./ORG/$name.class.php")require("./ORG/$name.class.php");elseif(file_exists("./libs/".ucfirst($name).".class.php")require("./libs/".ucfirst($name).".class.php");elseif(file_exists("./libs/sysplugins/$name.php

10、")require("./libs/sysplugins/$name.php");elsedie("錯(cuò)誤:沒有找到對(duì)應(yīng)$name類!");/數(shù)據(jù)連接配置文件require("./configs/config.php");/獲取參數(shù)m的值,并創(chuàng)建對(duì)應(yīng)的Controller對(duì)象$mod = isset($_GET'm')?$_GET'm':"index"/拼裝Controller類名$classname = ucfirst($mod)."Controller"

11、;/創(chuàng)建對(duì)應(yīng)的Controller對(duì)象$controller = new $classname();/執(zhí)行Controller的初始化(Controller入口)$controller->init();十一.在configs的目錄下創(chuàng)建一個(gè)config.php的配置文件7. 測(cè)試:-1. 在Controller目錄下創(chuàng)建一個(gè)indexcontroller.class.php文件/* 網(wǎng)站入口的主Controller類*/class IndexController extends Controller/默認(rèn)入口方法public function index()$this->assig

12、n("title","MVC的測(cè)試界面");$this->display("index.html");十二.在view目錄下創(chuàng)建index.html模板頁面<html><head><title><$title></title></head><body><h2><$title></h2></body> </html>十三.搭建MVC結(jié)構(gòu)(使用mvc設(shè)計(jì)模式搭建的框架) 基于MVC,解耦合

13、(高內(nèi)聚,低耦合),優(yōu)點(diǎn):易維護(hù)、易擴(kuò)展十四.內(nèi)聚性又稱塊內(nèi)聯(lián)系。指模塊的功能強(qiáng)度的度量,即一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。若一個(gè)模塊內(nèi)各元素(語名之間、程序段之間)聯(lián)系的越緊密,則它的內(nèi)聚性就越高。十五.耦合性也稱塊間聯(lián)系。指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強(qiáng),模塊的獨(dú)立性則越差。模塊間耦合高低取決于模塊間接口的復(fù)雜性、調(diào)用的方式及傳遞的信息十六.本MVC模式采用的是單一入口:如:http:/localhost/lamp120/mvc/index.php?m=stu&a=add /打開學(xué)生信息的添加界面其中m的值stu表示訪問的是StuController a的值add表示是方法(動(dòng)作)就是訪問StuAction的add方法。localhost/mvc/index.php?m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論