ShopNC B2B2C商城开发手册
天津市网城天创科技有限责任公司
2014-年1月
1.简介
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),用户可跟据实际运行环境自行设置。
●调试模式
系统提供了调试模式,可用于开发过程的不同阶段,包括开发、测试和演示等情况,满足调试开发过程中的日志和分析需要,确定将来系统以最佳的方式进行部署。
●查询机制丰富
系统内建丰富的查询机制,包括组合查询、复合查询、区间查询、统计查询、定位查询、多表查询、子查询和原生查询,使用数据查询简洁高效。
●动态模型
系统中无需创建对应的模型类、即可轻松完成CURD操作,使数据库操作更加简洁。
●支持字段检测
系统支持缓存字段信息,支持非法字段过滤和字段类型强制转换,确保数据操作的安全性。
●高效的搜索机制
系统引入第三方搜索引擎,使用内存缓存、文件缓存、数据表缓存相结合,最大化减少搜索给系统带来的影响。
●易用性
LAMP架构保证跨平台、MVC模块化开发保证易维护与扩展、系统架构保证集部署与扩展。
●高安全
目录读写分离,框架层验证与过滤、多层级口令保护、完善的角与权限控制。
●大数据
缓存集、数据库集、存储集(或分布式)和WEB集支撑大数据。
●高并发\高可用
数据缓存、动静分离、集(或分布式)部署支撑高并发,数据库集、存储集、宕机检测支撑高可用。2.2执行流程
系统采用单一入口模式,系统框架执行流程如下:
2.3目录结构
系统主要目录:
admin后台管理目录
chat IM目录
circle圈子目录
cms CMS目录
microshop微商城目录
shop商城目录
core框架目录
data公共资源目录
mobile手机客户端API
wap 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模板目录
2.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,类名为brandControl。
<siteurl>/index.php
将会执行control/index.php中的indexOp()方法
<siteurl>/index.php?act=brand&op=list
将会执行control/brand.php中的listOp()方法
2.6模型十大开源商城系统
ShopNC B2B2C商城Model的使用灵活,可以无需进行任何模型定义,就可以完成对相关数据表的CURD 操作,这就是动态模型处理,不需要重复进行模型实例化即可实现对不同表的操作。新模型的处理支持向下兼容。
使用Model()方法创建模型,可以创建一个空模型实例,然后使用该实例完成对不同表的操作,如:
$model=Model();
$model->table('member')->find(5);//查询主键ID为5的会员信息
$model->table('brand')->delete(5);//删除主键为5的品牌
也可以实例化一个非空模型实例,如:
$model=Model('member');
系统首先会查del.php文件及内部的memberModel类是否存在:
a)如果存在,将实例化del.php中的memberModel类,如果需使用框架已封装的方法(select、
find、delete、insert等),需要在memberModel类中继承Model类并在构造方法中触发父类构造方法,
class 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推荐位调用函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。