
ShopNCB2B2C商城开发手册参考模板.doc
120页ShopNC B2B2C 商城开发手册 / 天津市网城天创科技有限责任公司2014 年 6 月1 / 551.简介ShopNC B2B2C 商城是 ShopNC 于 2014 年最新推出的【B2B2C】电商平台系统,采用 PHP5+MySQL 技术 为基础,采用 OOP(面向对象)方式进行核心框架搭建,结合 MVC 模式进行开发,可以支持 Windows/Unix 服 务器环境,需 PHP5.3 及以上版本支持,可运行于包括 Apache、IIS 和 Nginx 在内的多种 WEB 服务器2.架构设计2.1系统特性ShopNC 借鉴了国内外优秀的开源程序与开发模式,使用面向对象的开发结构、MVC 模式、单一入口、ORM 影射等封装了 CURD 和一些常用操作,在安装部署、数据查询、数据缓存、数据验证、模型处理、视图与布局、 路由处理、SEO 支持、大数据支持等方面表现稳定● MVC 设计ShopNC B2B2C 商城融合了 MVC 模式进行开发,系统开发高效,各个节点结构更加清晰 模型(M):模型的定义由 Model 类来完成控制器(C):由框架核心和 Action 共同完成 视图(V):由 Tpl 类和模板文件组成。
MVC 作为一种模式只是提供了一种敏捷开发的手段,ShopNC 系统融入 MVC 模式但不拘泥于 MVC 本身 ● 缓存机制B2B2C 商城支持包括文件缓存、数据表缓存以及从种内存缓存(Redis、APC、Memcache、eAccelerator和 Xcache),用户可跟据实际运行环境自行设置● 调试模式系统提供了调试模式,可用于开发过程的不同阶段,包括开发、测试和演示等情况,满足调试开发过程中的日 志和分析需要,确定将来系统以最佳的方式进行部署● 查询机制丰富 系统内建丰富的查询机制,包括组合查询、复合查询、区间查询、统计查询、定位查询、多表查询、子查询和原生查询,使用数据查询简洁高效 ● 动态模型2 / 55系统中无需创建对应的模型类、即可轻松完成 CURD 操作,使数据库操作更加简洁 ● 支持字段检测系统支持缓存字段信息,支持非法字段过滤和字段类型强制转换,确保数据操作的安全性 ● 高效的搜索机制系统引入第三方搜索引擎,使用内存缓存、文件缓存、数据表缓存相结合,最大化减少搜索给系统带来的影响 ● 易用性LAMP 架构保证跨平台、MVC 模块化开发保证易维护与扩展、系统架构保证集群部署与扩展。
● 高安全 目录读写分离,框架层验证与过滤、多层级口令保护、完善的角色与权限控制● 大数据缓存集群、数据库集群、存储集群(或分布式)和 WEB 集群支撑大数据 ● 高并发\高可用数据缓存、动静分离、集群(或分布式)部署支撑高并发,数据库集群、存储集群、宕机检测支撑高可用2.2执行流程系统采用单一入口模式,系统框架执行流程如下:3 / 552.3目录结构系统主要目录:admin 后台管理目录chat IM 目录circle 圈子目录cms CMS 目录microshop 微商城目录shop 商城目录core 框架目录data 公共资源目录mobile 客户端 APIwap wap 商城data > api 第三方 API 目录data > cache 缓存文件目录data > config 配置文件目录data > crontab 定时触发文件目录data > log 系统运行日志目录data > session SESSION 文件存放目录data > upload 上传图片目录core > framework系统框架core > framework > cache缓存驱动core > framework > core核心文件core > framework > db数据层驱动core > framework > function系统方法core > framework > libraries类库core > language框架语言包目录shop > install安装目录shop > language语言包目录shop > control控制器目录shop > templates模板目录4 / 552.4MVC 设计ShopNC B2B2C 商城融入 MVC 模式进行开发,系统开发高效,各个节点结构更加清晰。
模型( M ):模型的定义由 Model 类来完成控制器( C ):由框架核心和 Action 共同完成 视图( V ):由 Tpl 类和模板文件组成MVC 作为一种模式只是提供了一种敏捷开发的手段,ShopNC 系统应用 MVC 但不拘泥于 MVC 本身2.5控制器ShopNC B2B2C 商城控制器类位于 control 目录,控制器调度由框架依据 act 和 op 参数完成,如果 act 或 op 参数为空,系统会自动赋值“index”控制器类文件名一般为业务名称,类名称一般为 业务名称 + “Control”,如品牌控制器类文件命名为 control/brand.php,类名为 brandControlhttp://
新模型的处理支持向下兼容使用 Model()方法创建模型,可以创建一个空模型实例,然后使用该实例完成对不同表的操作,如: $model = Model();$model->table('member')->find(5); // 查询主键 ID 为 5 的会员信息 $model->table('brand')->delete(5); // 删除主键为 5 的品牌 也可以实例化一个非空模型实例,如:$model = Model('member');系统首先会查找 model/member.model.php 文件及内部的 memberModel 类是否存在:a) 如果存在,将实例化member.model.php中的memberModel类,如果需使用框架已封装的方法(select、 find、delete、insert 等),需要在 memberModel 类中继承 Model 类并在构造方法中触发父类构造方 法,5 / 55class memberModel extends Model{ public function __construct(){parent::__construct('member');}//除使用系统提供方法以外,还可以自定义方法//public function myfuc(){ //添加业务逻辑}b) 如果不存在,将实例化 framework/core/model.php 中的 Model 类,也就是只实例化框架提供的模型类(动态模型)$model = Model('member'); $model->find(5); // 查询主键为 5 的会员信息$model->table('brand')->delete(5); // 删除主键为 5 的品牌,即使创建 member 模型,还是可以使用该模型的 table()方法来操作其它表2.7数据库抽象层ShopNC B2B2C 商城提供了多个数据库访问驱动,支持 mysql、mysqli,系统会跟据当前的数据库配置,自 动调用相应的数据层驱动,同时系统还支持数据库的集群配置,为企业客户保驾护航。
2.8视图视图功能主要由 Tpl 类(core/framework/libraries/tpl.php)和模板文件组成(位于 templates 目录下),Tpl类完成控制器和模板文件的沟通,控制器通过 Tpl 类将数据输送到模板,然后由模板输出数据,ShopNC B2B2C 商 城未使用特定的模板语言,而是使用原生的 PHP 语法,省去了解析模板语言的时间,加快响应速度2.9函数和类库函数系统函数均存放在 framework/function 目录中,考虑到以后的扩展,系统跟据功能将函数拆分进入不同的文 件中,core.php 存放系统的通用函数goods.php 存放处理商品、订单、店铺相关的信息的函数 rec_position.php 推荐位调用函数6 / 55seccode.php 存放验证码操作的函数thumb.php 图片裁剪函数adv.php 广告调用函数类库系统类库主要存放在 framework 下的 libraries、cache、core 和 tpl 目录中,librarites 存放的主要是完成专 项功能的类,cache 下是存放多种缓存驱动类,core 下存放的是核心基类和模型处理类。
libraries/email.php 邮件发送类libraries/cache.php 缓存驱动入口类libraries/gdimage.php 水印类libraries/chat.php IM 处理类libraries/language.php 语言包处理类libraries/log.php 日志类libraries/page.php 分页类libraries/resizeimage.php 图片裁切类libraries/seccode.php 验证码处理类libraries/security.php 字符过滤类libraries/excel.php EXCEL 导出类libraries/upload.php 上传类libraries/csv.php CSV 导出类libraries/tpl.php 视图类libraries/model.php 模型类cache/ cache.red。
