EcTouch二次开发
一、EcTouch简介
1.1、 什么是ECTOUCH
ECTouch是上海商创网络科技有限公司推出的一款开源免费移动商城网店系统,可以在手机上面卖商品的电子商务软件系统。能够帮助企业和个人快速构建手机移动商城并减少二次开发带来的成本。
1.2、基于MVC框架开发
采用稳定的MVC框架开发,执行效率、扩展性、稳定性值得信赖。MVC是一种将应用程序的逻辑层和表现层进行分离的方法。MVC分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。MVC分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
1.3、最新国际标准语言研发
前端采用最新的国际标准HTML5+CSS3,在HTML5平台上,视频,音频,图象,动画,以及同设备的交互都被标准化,各个平台都正在完善对这一标准的支持,基于HTML5标准的一次开发,可以轻松的部署到各个平台,大大提高开发效率。
服务器端依然采用php脚本,学过tp的人大概一眼能看出ectouch使用tp开发的。
官方下载地址: http://www.ectouch.cn/
1.二次开发
2.1 入门基础
2.1.1服务器要求
1.Windows 平台:
IIS/Apache/Nginx + PHP + MySQL5
2.Linux/Unix 平台
Apache/Nginx + PHP+ MySQL5 (PHP必须在非安全模式下运行)
建议使用平台:Linux + Apache2.2 + PHP5.2/PHP5.3 + MySQL5.0
3.PHP必须环境或启用的系统函数:
curl
allow_url_fopen
GD扩展库
MySQL扩展库
系统函数 —— phpinfo、dir
2.1.2模型-视图-控制器(MVC)
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。
2.2 结构设计
2.2.1文件目录结构
根目录
| – 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系统默认模板目录
2.2.2 url访问
ECTouch是采用个MVC设计模式开发,基于模块和操作的方式进行访问,并且使用单一入口模式进行项目部署和访问,任何功能和模块的访问,只有通过此入口文件。
参数名称 |
描述 |
位置 |
备注 |
m |
模型/模块名称 |
include/apps/中模块目录名称 |
必须 |
c |
控制器名称 |
include/apps/模块/controller/*.php 文件名称 |
必须 |
a |
事件名称 |
include/apps/模块/controller/*.php中方法名称 |
模块访问方法[示例]:
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传递参数形式相同
2.2.3模块和操作方法
ECTouch中的模块,位于include/apps/目录中 每一个目录称之为一个模块。即url访问中的m
[示例]:
index.php?m=default&c=index
那么您访问的就是ECTouch/include/apps/default这个模块。
如果创建一个前台模块,只要在 include/apps/default 目录下创建:模块名称+Model.class.php
2.2.4 控制器
ECTouch的控制器就是模块文件下面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方法,那么就不能再重复定义这个方法了。
2.2.5 命名规范
使用ECTouch做二次开发,应该遵循其开发规范。规范如下:
核心程序目录(includes)的类文件需要以.class.php 为后缀名称,开头第一个字母大写。例如:IndexModel.class.php
控制器和模型中的类名和文件名一致,例如IndexModel.class.php的类名为:IndexModel
2.2.8 配置文件调用
网店配置文件在 data/ache/static_caches/touch_shop_config.php,在BaseMode.class.php中通过load_config 方法调用
连接数据库配置文件在:data/fonfig.php
return array(
'DB_TYPE' => 'mysql',
'DB_HOST' => 'ocalhost',
'DB_NAME' => 'ectouch,
'DB_USER' => 'root',
'DB_PWD' => 'root123',
'DB_PORT' => '3306',
'DB_PREFIX' => 'ecs_',
'DB_CHARSET' => 'utf8'
);
2.2.9 二次开发技巧
对已经存在的控制器开发,对数据库的操作需要放在模型文件 =model中,在控制器使用时只需调用model(‘模型名称’)->调用方法(),例如调用CommonModel模型中的get_navigator 方法,可以这样调用:model('Common')->get_navigator()
2.3 构建模块
2.3.1开发流程
为ECTouch创建一个模块的一般开发流程是:
- 创建数据库和数据表;(没有数据库操作可略过)
- 创建模块目录
- 创建模块控制器类;
- 创建模块类与模块函数;(如果只是简单的模块可以不必创建)
- 创建模板文件;
- 运行和调试。
EcTouch二次开发的更多相关文章
- Navisworks API 简单二次开发 (自定义工具条)
在Navisworks软件运行的时候界面右侧有个工具条.比较方便.但是在二次开发的时候我不知道在Api那里调用.如果有网友知道请告诉我.谢谢. 我用就自己设置一个工具.界面比较丑!没有美工. 代码: ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 12.二次开发及应用
目 录 第十二章 二次开发及应用... 2 12.1 项目配制... 3 12.2 引用相关组件... 4 12.3 构建主程序... 5 ...
- OBS-Studio二次开发记录
OBS-Studio 是一款跨平台的,开源的视频直播客户端软件. 公司需要对他进行二次开发,开发的目的是使用它的录屏功能. 开发的要求是:定制全新的界面,所见即所得,window系统兼容要好. 开发步 ...
- 小猪cms微信二次开发之怎样分页
$db=D('Classify'); $zid=$db->where(array('id'=>$this->_GET('fid'),'token'=>$this->tok ...
- 承接 AutoCAD 二次开发 项目
本人有多年的CAD开发经验,独立完成多个CAD二次开发项目.熟悉.net及Asp.net开发技术,和Lisp开发技术. 现在成立了工作室,独立承接CAD二次开发项目.结项后提供源码及开发文档,有需要的 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】三.二次开发流程
1.1 二次开发流程图 1.2 引用相关组件 找到“开发包”,引用里边的相关组件.如下图: 1.3 开发设备驱动模块 1.3.1 开发发送协议驱动 继承SuperIO.Devi ...
- Civil 3D API二次开发学习指南
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...
- visio二次开发——图纸解析之线段
多写博客,其实还是蛮好的习惯的,当初大学的时候导师就叫我写,但是就是懒,大学的时候,谁不是魔兽或者LOL呢,是吧,哈哈哈. 好了,接着上一篇visio二次开发——图纸解析,我继续写. 摘要: (转发请 ...
随机推荐
- Java [leetcode 7] Reverse Integer
问题描述: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Ha ...
- 分享一段H264视频和AAC音频的RTP封包代码
1. H264视频的RTP封包 static int h264_parse(Track *tr, uint8_t *data, size_t len) { h264_priv *priv = tr-& ...
- 入门视频采集与处理(学会分析YUV数据)
做视频采集与处理,自然少不了要学会分析YUV数据.因为从采集的角度来说,一般的视频采集芯片输出的码流一般都是YUV数据流的形式,而从视频处理(例如H.264.MPEG视频编解码)的角度来说,也是在原始 ...
- MYSQL设计方案
Scale Out:横向扩展,增加处理节点提高整体处理能力Scale Up:纵向扩展,通过提升单个节点的处理能力达到提升整体处理能力的目的 ReplicationMySQL的replication是异 ...
- Myeclipse中相同变量高亮显示
不小心搞不显示了,解决: windows/MyEclipse-> preferences-> java-> Editor-> Mark Occurences 勾选即可
- NYOJ-779-兰州烧饼
[题目链接:NYOJ-779] 兰州烧饼 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 烧饼有两面,要做好一个兰州烧饼,要两面都弄热.当然,一次只能弄一个的话,效率 ...
- [转] ArcGIS engine中气泡标注的添加、修改
小生 原文 ArcGIS engine中气泡标注的添加.修改! 你微微地笑着,不同我说什么话.而我觉得,为了这个,我已等待得久了. ...
- IOS block 记录
1.需要使用 @property(....,copy) 而不是其他的 2.self.request=[ASIHTTPRequest requestWithURL:[NSURL URLWithStrin ...
- 【LeetCode 229】Majority Element II
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...
- auto printer 自动打字机效果
前段时间在知乎上看到了一个打字机的效果,所以,心血来潮,自己也来写了一个打字机的效果. 比较简单,但还有待优化的地方,因为自己感觉这个效果不够炫,等哪天想出好的点子了.再来更新…… 代码效果预览地址: ...