项目说明:
- 目前代码正在快速迭代过程,由团队本地使用SVN合并汇总,由我每天1-2次提交至github。
- 同样因为处于快速迭代期间,代码更新速度比较快,暂时不适合用于正式项目中,您可以关注并下载,但请谨慎用于项目。
- 您可以使用Issues对本项目提出改进意见,我们会及时对意见进行处理,但暂时不可以使用Pull requests进行提交(ps:其实可以提交,只是提交了并不会被合并到项目中)。
- 详细的项目介绍将陆续进行发布。
- 模块流程图、数据字典、使用教程、示例演示以及二次开发手册也将在后期公开发布。
网站常用的js类库均使用CDN地址载入,载入速度更快。
采用CDN加速的另一个好处是缓存加载(秒加载),假如A网站用EHCMS做的。B网站也是用EHCMS做的。用户访问了网站A,将JS载入并缓存在了本地,那么他访问网站B的时候,将无需再远程加载,从本地的缓存库里直接调用,那个速度可想而知。
在预防CDN加载异常的问题上,我们采用的是requirejs的备选(paths)方案。首先加载CDN的远程内容。无法加载的将使用本地(程序代码库)的内容。
ehcms依据网页功能需要开发了一系列辅助类库,为快速构建模板起到了至关重要的作用。
其中包括:数据双向绑定、服务端交互组件(http)、双向通讯API等
更多介绍请点击 eh辅助类库详细介绍
前端底层架构采用MVC开发模式,低耦合、高效率协作方式。为后期功能扩展奠定良好的基础。
模型(M)主要与服务端数据交互,如:异步表单数据、异步获取数据、跨域通讯(jsonp)等。
模板(V)主要负责异步数据生成、html元素生成。
控制器(C)由多个模块组成,按需加载,主要负责业务逻辑的处理、与模型和模板之间的沟通 。
服务端框架选用 thinkphp5.0 版本,模块化开发,安装即用。
项目按功能的不同开发了多个模块,减少模块间的耦合,自由搭配组合,积木式拼接。
模块按需惰性加载,比如我只是一个博客站,那只要一个文章模块就可以了啊。为什么还要一堆其他用不着的东西呢?
模块加载无需操作,会在安装模板的时候自动按当前模板需要的模块进行加载,官方提供的模板均支持该功能,后续会整理模板开发手册,将详细讲解此功能。
强烈建议,当一个网站的类型确定后,不要轻易安装其他类型的模板,我们采用向下兼容的模式来衡量跨类型模板的替换,准确的说,最好的做法是少功能类型向多功能类型转换,反之是不推荐的,这有可能会导致数据的不吻合,还有可能导致数据冗余,(在跨类型安装模板的时候系统会发出提醒的)。最好在建站前考虑好网站的类型、内容以及后期的发展方向,这不仅仅是在功能、模板的选择上有好处,对网站的发展也是有好处的。
- 文章模块(包括但不限于发布文章、管理文章,支持markdown解析)
- 会员模块(包括但不限于登录、注册、会员信息管理)
- 积分模块(各种分值、等级,主要与会员模块配合)
- 讨论模块(包括评论、工单)
- 资源模块(接收来自各方面上传的图片、音频、视频以及图片压缩、剪切、云存储API等)
- 微信模块(微信API以及常用功能,包括但不限于自定义菜单管理、关键词自动回复、微签到、微抽奖、微红包等等)
- 支付模块(支付宝、微信)
- 商品模块(商品的信息管理以及购物车功能)
- 验证模块(短信,邮箱验证、thinkphp数据验证扩展、自带的图片验证、极验验证。如使用的是极验免费版,在接近免费限制的时候将自动切换到自带的图片验证上)
- 订单模块(主要是与商城系统配合,但也可以独立工作)
- 物流模块(包括但不限于物流公司管理,物流票据打印、物流记录查询等)
- 日志模块(包括但不限于运行日志、错误日志、用户操作记录等)
- 分类模块(各种分类功能,对已有模块可以做到,载入自动建表的功能)
- 统计模块(埋点式精准统计链接、按钮的点击情况,分析网站热度区域)
- 广告模块(与模板配合管理广告窗口,更换模块,广告位自动替换,对相同属性的广告位直接覆盖。)
- 通讯模块(双向实时通讯,使用websocket,避免轮询、HTTP请求功能(curl))
- 店铺模块(可以理解为商品模块的扩展,给商品找一个仓库以及展厅)
- 推广模块(包括但不限于,发送短信(目前仅支持阿里大鱼接口)、邮箱(支持国内各种邮箱接口))
- 中间件模块(处理一些模块之间的交互、数据传递以及功能并无明确划分的内容)
未完待续...
thinkphp:中文WEB应用框架(www.thinkphp.cn)
SUI Mobile : 轻量,小巧且精美的UI库(m.sui.taobao.org)
bootstrap: 简洁、直观、强悍的前端开发框架(www.bootcss.com)
CDN:Bootstrap中文网开源项目免费 CDN 服务(www.bootcdn.cn)
jquery: 优秀的Javascript库(www.jquery.com)
zepto: 优秀的Javascript库(www.zeptojs.com)
lodash: JavaScript工具库(www.lodash.com)
layer: web弹层组件(layer.layui.com)
webUploader: 多功能上传组件(fex.baidu.com/webuploader)
(如有遗漏,请随时联系我们)
同样感谢那些帮助过ehcms,为ehcms项目作出过贡献,以及正在为之奋斗的伙伴们。没有你们的努力,将不可能有这个项目的存在。