转载地址:http://my.oschina.net/u/1036767/blog/424872

相信大家在ectouch官网都注意到了,ectouch采用的MVC框架,之前一直以为它用的和ecshop一样都是smarty,本鸟默默按照smarty的文件结构研究了好几天,结果是各种文件对不上号。无奈之下问了度娘才明白我的思考从一开始就是个错误(妹的,这么简单的错误,我竟真的如此认真地研究了好几天,也是醉了,大家平时还是多与度娘沟通,别和我一样遇到个问题就坐在那里想。。。)。说的够多了,该正题了。

先说一下MVC结构,相信大家能在网上找到不少这方面的资料,这里就ectouch的文件简单总结下。

模块(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/

目录结构

根目录 
  |  –  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

学习ectouch之文件结构相关推荐

  1. JVM学习笔记——class文件结构

    [b]Java编译过程: [/b][img]http://www.oschina.net/uploads/img/201001/11000149_dJCf.gif[/img] [b]Java的Clas ...

  2. abupy文件结构功能

    学习量化系统开发 量化系统分为: 回测模块 包括 择时系统 .选股系统 实盘模块 择时系统: 买入因子 卖出因子 滑点买入.卖出价格确定及策略实现 多只股票使用相同的因子进行择时 仓位管理策略 多只股 ...

  3. 一文读懂resource.arsc文件结构

    resource.arsc文件结构 概述 arsc文件作用 chunk arsc文件结构 Chunk头结构 ResTable_header StringPool Package `ResTable_t ...

  4. 全网最详细完备的class类文件结构解析

    写在前面 本文隶属于专栏<100个问题搞定Java虚拟机>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见100个问题搞定Java ...

  5. STM32F7xx —— FatFS(W25QXX)

    STM32F7xx -- FatFS(W25QXX) 看本章之前请务必先食用:动态内存管理    W25QXX读写 使用经典的fatfs1.4.1,下载源码,和我们用户相关的式diskio.c,实现里 ...

  6. Android 逆向基础

    Android 反编译教程 博客内容 基本知识 几个重要的工具 技术原理 apktool dex2jar + jd-gui DEX文件结构学习 Monkey使用手册 Android权限列表以及说明 博 ...

  7. jenkins+calabash搭建Android自动化测试平台

    关于环境搭建过程参考 jenkins+appium+calabash测试框架搭建 1.假设环境都已经搭好,现在进入jenkins新建一个job. 配置SVN: 如果SVN需要授权,添加账号和密码. 2 ...

  8. UE4 Slate独立引用程序(摘抄大象无形)

    UE4 Slate独立引用程序(摘抄大象无形) 简介 如何开始 BlankProgram 走的更远 预先准备 增加模块引用 添加头文件应用 修改Main函数为WinMain 添加LOCTEXT_NAM ...

  9. HZNUCTF REVERSE Signin题解——upx壳区段改名修复,动态调试脱壳

    目录 一.查壳 二.修复upx区段名脱壳 三.动态调试脱壳 四.注意事项 题目附件:https://pan.baidu.com/s/1KXNvwOd7WObU-LiikiOd8A?pwd=4l31  ...

  10. JVM学习04:类的文件结构

    JVM学习04:类的文件结构 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. 类的文件结构知识要点Xmind梳理 转载于:https://www.cn ...

最新文章

  1. input反应慢 vue_Vue v-model实时更新带来的输入框卡顿问题
  2. 多线程导出大规模excel文件
  3. 3.6 BatchNorm 为什么起作用-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  4. Matlab 训练深度学习模型函数 trainingOptions
  5. 第三十一期:QQ for Linux 复活,微信 for Linux 还远吗?
  6. docker 解决php 502,Docker里两个php容器一个正常访问,一个出现502 Bad Gateway nginx/1.17.8。...
  7. 2006-我都做了什么!
  8. 无人车致命车祸视频曝光:Uber技术失败的实锤,一场本可避免的灾难
  9. 游戏服务器数据库踩过的坑
  10. github fork自己的库,如何同步源库的更新
  11. 韦东山freeRTOS系列教程:入门文档教程+进阶视频教程(全部免费的freeRTOS系列教程、freeRTOS学习路线)
  12. 【学习笔记】统计学入门(5/7)——二项分布
  13. APISpace 银行卡四要素API
  14. 基于Go语言Gin+Xorm+Layui实现RBAC权限管理系统
  15. JavaScript:实现将 base64 字符串转换为字节数组算法(附完整源码)
  16. 伦敦国王学院计算机申请要求,伦敦大学国王学院高级计算机管理理学硕士研究生申请要求及申请材料要求清单...
  17. 【Scikit-Learn 中文文档】数据集加载工具 - 用户指南 | ApacheCN
  18. 原谅帽大作战游戏程序
  19. 【FTP】FTP常用命令,持续更新中……
  20. 模拟【CSP201609-3炉石传说】

热门文章

  1. 【新闻】本人新书《Java多线程编程实战指南(核心篇)》已出版上市
  2. Java项目(五子棋)
  3. 数据驱动型企业的海外服务器管理实践
  4. SmartPhone和PPC手机的区别
  5. 计算机桌面保护程序,屏幕保护程序软件
  6. 服务器系统如何设置屏幕保护,在windows中要设置屏幕保护程序可以使用控制面板的什么功能?_网站服务器运行维护,windows,屏幕保护程序,控制面板...
  7. cisco思科模拟器交换机和路由器基础命令
  8. 前端新手小白必看--最全静态网页模板网站
  9. 重庆市机电工业学校计算机专业,重庆机电工业学校2021年招生计划
  10. python模拟火车订票系统_毕业论文:火车票网上订票系统