目標:基於自定義的mvc框架開發的案例(項目)
典型的業務邏輯: 電子商務:商城(京東),B2C,C2C(淘寶),團購,秒殺,代購
內容管理:新浪門戶類,優酷視頻管理,博客文章管理,微博
論壇:
我們的需求,商品管理案例!參考ecshop應該出現的商品管理的基本功能實現。
ecshop,使用率非常高,電子商務平台(網上商城系統)。
上傳拷貝php源代碼 創建數據 基本配置
下載ecshop的源代碼,解壓,將upload目錄拷貝(上傳)到web目錄:建議改成ecshop的名字
使用浏覽器,訪問到ecshop目錄中的index.php即可。自動跳轉到安裝界面(如果需要重新安裝,也可以請求到該地址)
檢查環境,典型的需要:mysql擴展,gd擴展(圖片處理擴展)
配置信息
數據庫服務器部分:
管理員信息:
安裝測試數據:
等待安裝完畢:
Tips:建議選擇PHP5.3X版本
數據結構的設計
編碼的設計
典型的編碼,分成兩大方向:二次開發,基於框架開發
二次開發:在已有的產品(業務邏輯都已經實現)上做修改,升級的開發方式。
優點:速度快,通用業務邏輯已經被實現。
缺點:定制型差。
典型的產品:
電子商務:ecshop,ecmall,shopex,zen-cart,oscommerce ,麥進斗
內容管理:dedecms,帝國cms,phpcms,drupal,wordpress
論壇:phpwind,discuz
框架開發:
框架,沒有實現業務邏輯,只實現了底層代碼。
優點:不用寫重復的底層功能代碼,直接用即可,定制性強。
缺點:周期較長。
典型的框架:ThinkPHP,Yii,Ci,Zend-framework,symphony
PHP代碼與HTML代碼 出現在同一文件中。
典型的是:
上面是PHP先實現所有的業務邏輯,下邊再是HTML決定顯示樣式。
或者直接利用PHP echo ,輸出需要的HTML代碼。
將負責數據處理,業務邏輯處理的PHP代碼,與負責顯示效果處理的HTML(CSS,JS)等分開來進行管理。
典型的實現:將負責顯示的HTML相關部分,拆分到獨立的HTML中,在PHP處理完業務邏輯後,再將HTML代碼加載到該文件中。
簡單的說就是把原來混編的代碼分開到2個頁面。這2個頁面要組合起來才能實現和原來一個混編文件一樣的效果。
比如:match_list.html(展示)match_list.php(邏輯) require './match_list.html';
template:參見match_list.html
使用html相關代碼負責顯示結構,使用動態代碼php實現數據的展示,該類型的文件,在項目中,稱之為模板文件,template.
要求:浏覽器用戶請求,必須請求負責邏輯功能的PHP文件才可以。
如何限制浏覽器用戶不能請求到html模板文件?
典型的實現方式2種:
在相應的部分執行正確的控制器代碼即可:
測試:localhost/six/index.php?c=Student&a=list localhost/six/index.php?c=Match&a=list
強調:
有了單一入口,就要求,用戶的所有的請求都要從單一入口文件請求到。
目錄分成2個目錄
體現框架代碼和業務邏輯代碼的區別
將基礎模型,mysqlDB類定義文件放在框架代碼:
將業務邏輯相應的控制器,模型,視圖文件分別放在application目錄中
入口文件,通常放置在站點根目錄:
修改項目中使用的路徑