下午筆記圖解自定義mvc框架二_第1頁
下午筆記圖解自定義mvc框架二_第2頁
下午筆記圖解自定義mvc框架二_第3頁
下午筆記圖解自定義mvc框架二_第4頁
下午筆記圖解自定義mvc框架二_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1 MVC框架介 MVC基本介 第2 模型層的封 基礎(chǔ)模型 第3 控制器層的封 第4 結(jié) MVC 第5 自動加載機 封裝文第6 自動化處 1章MVCMVC(炒菜、上菜、打掃衛(wèi)生、結(jié)賬等,飯店肯定開不下去,同樣的道理,如果開發(fā)一個項目,如果所有的代碼都是自己重寫的,效率方面、安全性方面就沒有保證。的團隊(框架說明:實際開發(fā)的時候,都會使用一些成框架(有專門的團隊進行的,我們自定義框架的目的就是學(xué)習(xí)MVC框架的思想和封裝的MVC是這3個單詞的縮寫:View:視圖,專門用來顯示內(nèi)容(保存一些html文件)(命令模型處理數(shù)據(jù)、命令視圖顯示數(shù)據(jù) mvc框架的優(yōu)勢PHP代碼、sql語句的優(yōu)化提升執(zhí)2章模型層的封裝OOP的思想封裝MVC(面向?qū)ο笕绾问褂肙OP 表的操作(增刪改查 (增刪改查DAOPDO類實現(xiàn),所以我們DAOPDO類:PDODAOPDO上面的代碼還有問題:將來項目會有很多模型類,每個模型類都需要使用DAOPDO接下來我們要想調(diào)用模型的模仿,需要先實例化模型對象,之前:模型對象只需3個私有、1個公共的方法,這種寫法比較繁瑣接下來我們采用工廠模式工廠模式在我們這里指的就是,傳遞模型類進來,我給你生產(chǎn)模型對象每次調(diào)用M所以還會創(chuàng)建新的對象,所以我們需要將數(shù)組定義為靜態(tài)的變量,這樣,在周期內(nèi)3控制器層是根據(jù)功能模塊復(fù),方便通常我們在控制器類里面發(fā)布命令:使用smarty進行數(shù)據(jù)的分配,所以smarty的初始化再次封裝到一個基礎(chǔ)的控制第4章 MVC的mvc框架的時候,有一些代碼是和具體項目的業(yè)務(wù)相關(guān)的,所以我們將這些代碼封裝到項目的里面,通常取名為application,該名稱可以自己修改(jd、,除此之外,還有一些代碼是公共的(Controller.class.php,刀片框架里面,取名為frameworkmvc結(jié)構(gòu)理,我們 像smarty

像Captcha、Page像DAOPDO、I_DAO這些類、接口,和數(shù)據(jù)相關(guān)的,保存到 結(jié)構(gòu)也就劃分為前臺home、admin:由于前臺、為了提高開發(fā)效率,也都會使用mvc進行代碼的管 文件又稱之為分發(fā)控制器,就像公司的前臺,根據(jù)訪客的需求,將其引導(dǎo)到對應(yīng)的。在我們的框架里面,文件會根據(jù)用戶的需求,引導(dǎo)到對應(yīng)的文件那么我們需要在文件傳遞什么參數(shù)呢?也就是需要告訴前臺哪些信息呢去前臺還是mvcindex.php加載,也就是說這些類文件再加載的話,都會從index.php這里出發(fā)錯誤就是說:在Controller.class.php10行,沒有找到原因:ControllerCategoryConreoller報到,所以里面加載文件的時候,出發(fā)點也是(deleteAction5章自動加載機制New: 類2,類2不存在implementsrequire_once就沒用了,所以需要把所有的require_once統(tǒng)統(tǒng)刪掉CategoryController繼承了ControllerControllerrequire_once文件index.php的require_once也刪掉大家自行把所有類里面的require_once都刪掉,smarty找不到,因為不知道去哪個 里面找,可能admin、home;里面都有CategoryController這個類(1)文件就不用加命名空間了。因為文件用來加載其他類,不定義每個類名空間包含當(dāng)前類所在的路applicationapplication是項目的名稱,后期可能會變化,所以項目的類名空間:admin\controller或home\controller第的類我們不用增加命名空間我們做一個特例處(手動有同學(xué)可能會想CategoryModel類名空間和UserModel;類名空間一注意:在使用這些類時,需要告訴PHP就是根據(jù)提示的需要的類名(1)先根據(jù)\ function{echo'我們需要function{echo'我們需要 require_once}//1.$arr=explode('\\',if($arr[0]==$basic_path=$basic_path=}$sub_path= ce('\\','/',//4.if(substr($arr[count($arr)-1],$fix=$fix=}$class_file=//5.require_oncerequire_once echo }我們是在Controller基礎(chǔ)控制器中初始化的由于會在當(dāng)前空間找Smarty類,所以提示的錯誤:framework\core\Smarty解決之道:smarty屬于全局空間,加上\前綴說明:smarty_internal_datasmarty自己加載的,也不是我們定義的類,所以我們最終的文件自動加載的代碼function{{echo'我們需要 require_once}$arr=explode('\\',if($arr[0]==$basic_path=$basic_path=}$sub_path= ce('\\','/',if(substr($arr[count($arr)-1],$fix=$fix=}$class_file= require_once}} $m= $c$c= $a=$controller_name=$controller=new$controller->封裝文文件有什么好封裝的呢?是類,然而現(xiàn)在的文件index.php是完全面向過程的寫法,所以我們要將其封命令視圖顯示商品列表:smarty去顯示DAOPDO.class.php、I_DAO.interface.php拷貝到實例化dao對象:在基礎(chǔ)模型Model.class.php控制器 我們在學(xué)習(xí)smarty的時候,使用過配置文件來保存的信息,這樣,如果將來的路徑變化了,我們只需修改配置文件即可,從而提升了的效率我們的mvc 為了靈活起見,我們給前臺、也增加一些配置文件,目前可能用不到,但是3框架的配置<公共的配置<前臺、各自的配思考:mvc首先,在Framework.class.php3因為該文件就相當(dāng)于文件,在這里定義之后,可以在任何地方使(2)在初始化MCA數(shù)據(jù)庫連接部分使用我們配置文件中的配置項進行、管數(shù)據(jù)庫的連接、初始化是在Model.class.phpsmarty的配置初始化的代碼進行修6章自動化處理我們要將模型sql語句公共部分再起提取出來,封裝到一個方法中。例如:下面的sql語句我們就可以簡化為:就是將插入數(shù)據(jù)的公共的代碼:INSERTINTO表名(字段VALUES(值)由于該方法不僅在商品模型中使用,在其他模型中也可能會使用到,所以其封裝到Model.class.php這個基礎(chǔ)模型中每個模型類增加屬性:logic_table保存該模型操作的數(shù)據(jù)表過去,所以我們給就可以在基礎(chǔ)模型中使用logic_table屬性 由于insert調(diào)用模型對象的insert方法最后,完善insert方法,Model.class.php$data='goods_name'=>''shop_price'=>)publicfunction{//$sql="INSERTINTO`表名`(`goods_name`,`shop_price`) $sql="INSERTINTO$this-//2.$fields=$field_list=return},$field_list='('.implode(',',$sql.=//3.拼接VALUES$field_value=$field_value=array_map(array($this->dao,"quote"),$field_value='VALUES('.implode(',',$sql.=return$this->dao-}最終要實現(xiàn):DELETEFROMWHERE主鍵字段=主鍵值將來調(diào)用:$model->delete(1)1的記錄desc我們在Model.class.php中先獲得主鍵字段是誰,也就是執(zhí)行desc接下來,我們可以直接在deleteUPDATESET`1`=’1’,`2`=’2’WHERE`字段名`=’字段值where最終要實現(xiàn):把查詢的sql語句拼接好并執(zhí)行,由于查詢的條件可能多種多樣,where條件了,返回一條數(shù)據(jù)where條件,返回所有數(shù)據(jù)在控制器調(diào)用find如果有更加復(fù)雜的需求時,需要自己拼接原生的sql自動化處理,在基礎(chǔ)模型類中,把sql執(zhí)行插入操作:INSERTINTO

溫馨提示

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

評論

0/150

提交評論