相信你們在ectouch官網都注意到了,ectouch採用的MVC框架,以前一直覺得它用的和ecshop同樣都是smarty,本鳥默默按照smarty的文件結構研究了好幾天,結果是各類文件對不上號。無奈之下問了度娘才明白個人思考從一開始就是個錯誤(妹的,這麼簡單的錯誤,我竟真的如此認真地研究了好幾天,也是醉了,你們平時仍是多與度娘溝通,別和我同樣遇到個問題就坐在那裏想。。。)。說的夠多了,該正題了。php
先說一下MVC結構,相信你們能在網上找到很多這方面的資料,這裏就ectouch的文件簡單總結下。html
模塊(The Model): 即M數據庫
主要包含那些用來操做數據庫的函數 文件後綴通常是***Model.class.php 路徑通常是../mobile/include/apps/default/model/設計模式
控制器(The Controller):即C瀏覽器
控制器是全部WEB應用的第一站,它接受收到的參數,好比$_GET變量,而後作出相應的反應。主要包含處理用戶各類操做的函數 文件後綴通常是***Controller.class.php 路徑通常是../mobile/include/apps/default/controller/緩存
視圖(The View):即V微信
一說到視圖,咱們不少人都會想到模板引擎(諸如Smarty等等)。其實就是各類各樣的輸出,好比說html模板和Javascript文件等。模板路徑通常是../mobile/themes/default/app
目錄結構框架
根目錄
| – admin 默認後臺管理目錄(可任意更名)
| – data 靜態資源和系統緩存、配置項目錄(必須可寫入)函數
| – assets 靜態資源目錄
| – attached 附件目錄
| – cache緩存目錄
| – common 公共靜態文件目錄
| – include 核心程序目錄
| – apps 主程序
| – admin 後臺模塊
| – install 安裝模塊
| – default 前臺默認模塊
| – common 公共方法
| – controller 控制器
| – language 語言包
| – model 模型
| – base 基礎程序
| – driver驅動程序
| – library 主類庫
| – vendor 第三方擴展類
| – plugins 插件程序目錄
| – connect受權登陸
| – wechat 微信
| – integrates 第三方用戶整合
| – payment 支付方式
| – shipping 配送方式
| – themes系統默認模板目錄
url結構
ECTouch是採用個MVC設計模式開發,基於模塊和操做的方式進行訪問,而且使用單一入口模式進行項目部署和訪問,任何功能和模塊的訪問,只有經過此入口文件。
模塊訪問方法[示例]: index.php?m=default&c=category&a=index&id=2
其中
m = default 爲模塊名稱位於include/apps/
c = category 爲控制器名稱位於include/apps/default/controller/IndexController.class.php
a = index 控制器訪問方法名稱 位於include/apps/default/controller/IndexController.class.php 中index()方法
id = 2 爲其餘參數 與正常get傳遞參數形式相同
模塊和操做方法
ECTouch中的模塊,位於include/apps/目錄中 每個目錄稱之爲一個模塊。即url訪問中的m [示例]:
index.php?m=default&c=index
那麼您訪問的就是ECTouch/include/apps/default這個模塊。
若是建立一個前臺模塊,只要在 include/apps/default 目錄下建立:模塊名稱+Model.class.php
控制器
控制器就是模塊文件下面controller下的類文件,位於include/apps/模塊/controller/下面。
命名規則爲:文件名+Controller.class.php,文件名開頭字母大寫,例如一個名爲test的控制器,那麼他的命名爲TestController.class.php便可。控制器類的類名稱與控制器文件名必須相同。
若是您建立了一個TestController.class.php在default模塊下,那麼咱們在瀏覽器裏面輸入URL:
http://localhost/ectouch/mobile/index.php?m=default&c=test 便可訪問到相應控制器
若是你添加的控制器類繼承了其餘的類,那麼要注意你類中的方法名稱不能和父類的方法名稱重複,不然會覆蓋原有的或者出現程序運行錯誤。
例如default模塊的類繼承了CommonController類,而這個類中定義了view方法,那麼就不能再重複定義這個方法了。
命名規範 規範以下: 核心程序目錄(includes)的類文件須要以.class.php 爲後綴名稱,開頭第一個字母大寫。例如:IndexModel.class.php 控制器和模型中的類名和文件名一致,例如IndexModel.class.php的類名爲:IndexModel