ectouch第二讲之 文件结构

  相信大家在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 基础程序

|  – constant.php  系统常量

|  –function.php  系统函数

|  –controller

|  –model

|  – 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

时间: 2024-10-31 04:36:57

ectouch第二讲之 文件结构的相关文章

【军哥谈CI框架】之入门教程之第二讲:分析CI结构和CI是怎么工作的

[军哥谈CI框架]之入门教程之第二讲:分析CI结构和CI是怎么工作的 By hzp123   at 2014-02-18   265 阅读   0 回复   0.0 希赛币 之入门教程之第二讲:分析CI结构和CI是如何工作的大家好!上一节,我们共同部署了一个CI网站,做到这一点非常简单,但是,亲们,要知道这才刚刚开始额~~~ 这一节,我们主要来了解CI的文件结构和CI是如何工作的.这一点特别的重要! 一.CI的文件结构:了解CI的文件结构可以帮助我们快速的对CI框架有一个整体的认识,就好像我们去

通达OA 二次开发培训第二讲

本次是通达OA二次开发第二讲,主要介绍了如何在通达OA中进行程序开发,并将开发程序挂接到OA系统中.

从大数据菜鸟走上大师的历程 第二讲:函数定义,流程控制,异常处理

Scala 第二讲 函数定义,流程控制,异常处理 For 循环  for(左边为单个对象obj  <-  右边为对象集合objs ) for 循环里把右边的对象赋给左边 现在正是学习大数据的最好机遇,不花一分钱就可以成为大数据高手,实现年薪50万的梦想. 王家林的第一个中国梦:免费为全社会培养100万名优秀的大数据从业人员! 如果您有兴趣请点击这个链接进入大数据的学习 http://blog.sina.com.cn/s/blog_8fbd39ee0102vto3.html 如果您确实感觉视频教程

机器学习基石第二讲:learn to answer yes/no

博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) 刚刚完成了机器学习基石的第二讲,主要介绍了机器学习的定义,PLA算法和pocket PLA算法.下面将笔记整理在下面. Perceptron Hypothesis Set 延续前面的信用卡发放问题.银行已有的用户数据可能包括用户的年龄.年薪.工作时长.债务情况等特征信息,我们分别用x1,x2,-,xd来表示,那么对于每一个用户都有一个向量来表示其信息.我们为每一个特征信息分配一个权

16位汇编第六讲汇编指令详解第二讲

16位汇编第六讲汇编指令详解第二讲 1.比较指令 CMP指令 1.CMP指令是将目的操作数减去源操作数,按照定义相应的设置状态标志 2.CMP指令执行的功能与SUB指令(相减指令)一样,但是不同的是CMP指令之根据结果设置标志位 而不修改值 可以操作的指令格式 CMP reg,imm/reg/mem CMP mem,imm/reg 上面是CMP指令的语法,具体的也可以查询帮助文档,inter手册 inter手册查的办法 第一个框代表了CMP指令的所有语法 比如 reg,reg 表示可以比较寄存器

《上古天真论》第二讲文字版

上古天真论篇第二讲 主讲:徐文兵  主持:梁  冬 播出时间:2008-12-20  23:00—24:00     经文:食饮有节,起居有常,不妄作劳,故能形与神俱,而尽其天年,度百岁乃去.今时之人不然也,以酒为浆,以妄为常,醉以入房,以欲竭其精,以耗散其真,不知持满,不时御神,务快其心,逆于生乐,起居无节,故半百而衰也. 梁:辅佐中国文化,发扬光大,大家好我的梁东,在我面前的是我非常尊敬的厚朴中医学堂的堂主徐文兵老师. 徐:梁东好,听众朋友们,大家好! 梁:大家好!我们计划,从新发现中医太美

POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取

第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页 //第一个单元格 Row row=sheet.createRow(0); // 创建一个行 Cell cell=row.createCell(0); // 创建一个单元格 第1列 cell.setCellValue(new Date()); // 给

(转)【风宇冲】Unity3D教程宝典之AssetBundles:第二讲

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 AssetBundles第二讲:AssetBundles与脚本 所有Unity的AssetBundle,无论是从本地获取 还是www,或者打包整个场景.物体上的脚本都不会被编译.所以AssetBundle打包的时候即使物体上有脚本.导入后其他所有Unity的文件都不会有问题,唯独脚本是没作用的.那能不能用脚本呢? 答案是,可以! 核心是脚本可以打包进Dll,然后在客户端用System.Reflection下的Assembly来加载. 步

32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数

32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数 (如果想看所有代码,请下载课堂资料,里面有所有代码,这里会讲解怎么生成一个窗口程序) 一丶32位汇编编写Windows窗口程序 首先我们知道32位汇编是可以调用Windows API的,那么今天我们就调用windowsAPI来写一个窗口程序 如果你有windows开发知识,那么就很理解了,如果没有,那么跟着我写,跟着步骤去写,那么也可以写出来 首先我们要编写一个窗口程序(使用SDKAPI编写)有几个步骤 1.设计窗口类 2.注