您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > ShopNC+B2B2C+商城开发手册
ShopNCB2B2C商城开发手册天津市网城天创科技有限责任公司2014年6月1/551.简介ShopNCB2B2C商城是ShopNC于2014年最新推出的【B2B2C】电商平台系统,采用PHP5+MySQL技术为基础,采用OOP(面向对象)方式进行核心框架搭建,结合MVC模式进行开发,可以支持Windows/Unix服务器环境,需PHP5.3及以上版本支持,可运行于包括Apache、IIS和Nginx在内的多种WEB服务器。2.架构设计2.1系统特性ShopNC借鉴了国内外优秀的开源程序与开发模式,使用面向对象的开发结构、MVC模式、单一入口、ORM影射等。封装了CURD和一些常用操作,在安装部署、数据查询、数据缓存、数据验证、模型处理、视图与布局、路由处理、SEO支持、大数据支持等方面表现稳定。●MVC设计ShopNCB2B2C商城融合了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后台管理目录chatIM目录circle圈子目录cmsCMS目录microshop微商城目录shop商城目录core框架目录data公共资源目录mobile手机客户端APIwapwap商城dataapi第三方API目录datacache缓存文件目录dataconfig配置文件目录datacrontab定时触发文件目录datalog系统运行日志目录datasessionSESSION文件存放目录dataupload上传图片目录coreframework系统框架coreframeworkcache缓存驱动coreframeworkcore核心文件coreframeworkdb数据层驱动coreframeworkfunction系统方法coreframeworklibraries类库corelanguage框架语言包目录shopinstall安装目录shoplanguage语言包目录shopcontrol控制器目录shoptemplates模板目录4/552.4MVC设计ShopNCB2B2C商城融入MVC模式进行开发,系统开发高效,各个节点结构更加清晰。模型(M):模型的定义由Model类来完成。控制器(C):由框架核心和Action共同完成。视图(V):由Tpl类和模板文件组成。MVC作为一种模式只是提供了一种敏捷开发的手段,ShopNC系统应用MVC但不拘泥于MVC本身。2.5控制器ShopNCB2B2C商城控制器类位于control目录,控制器调度由框架依据act和op参数完成,如果act或op参数为空,系统会自动赋值“index”。控制器类文件名一般为业务名称,类名称一般为业务名称+“Control”,如品牌控制器类文件命名为control/brand.php,类名为brandControl。将会执行control/index.php中的indexOp()方法=brand&op=list将会执行control/brand.php中的listOp()方法2.6模型ShopNCB2B2C商城Model的使用灵活,可以无需进行任何模型定义,就可以完成对相关数据表的CURD操作,这就是动态模型处理,不需要重复进行模型实例化即可实现对不同表的操作。新模型的处理支持向下兼容。使用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/55classmemberModelextendsModel{publicfunction__construct(){parent::__construct('member');}//除使用系统提供方法以外,还可以自定义方法//publicfunctionmyfuc(){//添加业务逻辑}b)如果不存在,将实例化framework/core/model.php中的Model类,也就是只实例化框架提供的模型类(动态模型)$model=Model('member');$model-find(5);//查询主键为5的会员信息$model-table('brand')-delete(5);//删除主键为5的品牌,即使创建member模型,还是可以使用该模型的table()方法来操作其它表2.7数据库抽象层ShopNCB2B2C商城提供了多个数据库访问驱动,支持mysql、mysqli,系统会跟据当前的数据库配置,自动调用相应的数据层驱动,同时系统还支持数据库的集群配置,为企业客户保驾护航。2.8视图视图功能主要由Tpl类(core/framework/libraries/tpl.php)和模板文件组成(位于templates目录下),Tpl类完成控制器和模板文件的沟通,控制器通过Tpl类将数据输送到模板,然后由模板输出数据,ShopNCB2B2C商城未使用特定的模板语言,而是使用原生的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.phpIM处理类libraries/language.php语言包处理类libraries/log.php日志类libraries/page.php分页类libraries/resizeimage.php图片裁切类libraries/seccode.php验证码处理类libraries/security.php字符过滤类libraries/excel.phpEXCEL导出类libraries/upload.php上传类libraries/csv.phpCSV导出类libraries/tpl.php视图类libraries/model.php模型类cache/cache.redis.phpredis缓存类cache/cache.file.php文件缓存类cache/cache.apc.phpapc缓存类cache/cache.xcache.phpxcache缓存类cache/cache.memcache.phpmemcache缓存类cache/cache.eaccelerator.phpeaccelerator缓存类db/mysql.phpmysql扩展MySQL数据库驱动db/mysqli.phpmysqli扩展MySQL数据库驱动7/553.开发指南3.1控制器系统控制器类位于control目录,控制器调度由framework/core/base.php中control()方法依据act和op参数完成,如果act或op参数为空,系统会自动赋值“index”。控制器类文件名一般为业务名称,类名称一般为业务名称+“Control”,例如系统的品牌控制器类文件为control/brand.php,类名为brandControl。跟据商城业务需要,系统内置三个控制器父级类,BaseHomeControl、BaseBuyControl、BaseMemberControl和BaseSellerControl分别适用于前台展示、下单、会员中心、商家中心三类控制器,品牌展示需要继承BaseHomeControl类。?php/***品牌展示**版权声明...*/defined('InShopNC')orexit('AccessInvalid!');classbrandControlextendsBaseHomeControl{publicfunctionindexOp(){//读取语言包Language::read('home_brand_index');//使用模型获得品牌列表$model_brand=Model('brand');$brand_list=$model_brand-getBrandList();//向模板抛出内容Tpl::output('brand_list',$brand_list);//设置页面标题Tpl::output('html_title',Language::get('brand_index_brand_list'));//输出SEO设置信息Model('seo')-type('brand')-show();8/55//调用模板展示Tpl::showpage('brand');}publicfunctionsearchOp(){/***内容略...*/}}?访问=brand将会执行brandControl类的indexOp方法访问http://
本文标题:ShopNC+B2B2C+商城开发手册
链接地址:https://www.777doc.com/doc-7027678 .html