黑龙江省电力营业管理系统应用研究

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《基于B2C的电子商城》1传播智慧,引领未来一.项目背景1.项目的意义www=why+what+howW:why?看看自己学的怎么样能否灵活运用各个知识点,完成一个项目。找到做项目的一个感觉,积累项目经验,为找工作奠定基础。通过项目,认识自己的不足,然后更加努力。2.项目定位W:what?PHP可以干什么?Web开发,基于B/S电子商务CMS,内容管理系统,涵盖面比较广泛SNS,社交网站各种管理系统电子商务的一些模式B,商家C,客户B2C:商家对客户。凡客,小米C2C:客户对客户,网站方只提供平台。淘宝、拍拍B2B2C:商家对商家对客户。京东,当当,国美,苏宁B2B:商家对商家,批发平台。阿里巴巴O2O:online2offline,线上线下,美团、糯米,大众点评,比较依赖于地图。最多的是B2C。我们的项目,是基于B2C模式的电子商城。做的过程中,可以参考ecshop、京东。W:how二.项目规划1.项目整体架构从电子商务的角度来讲,电子商城通常包括3个方面:《基于B2C的电子商城》2传播智慧,引领未来商品部分用户部分电子商务(订单)从开发项目的角度来看,需要完成两个方面的事情后台的开发前台的开发整体架构图商品模块,是我们商城的核心,也是整个电子商城项目中最难的一个内容。《基于B2C的电子商城》3传播智慧,引领未来2.时间安排三.数据库设计重要程度:*****难度:*****数据库的设计,就是体现了你对业务逻辑的理解。数据库设计的好坏,有时候决定了项目的成败。要点:表与表之间的关系(一对一、一对多[多对一],多对多[难])每一个字段的数据类型(数值、字符串、日期时间)没有布尔类型[使用tinyint]如何来设计数据库?----以商品模块为例找到核心(中心),然后一步一步的展开。核心----商品先来初步设计一下商品表的字段:名称、价格、图片、颜色、上架时间、各种规格参数、详细描述,库存,品牌、分类。这么多的属性,是存放到一张表当中的吗?品牌和商品是两个不同的东西,设计表的一个理念:一张表表示一种信息。冗余--更新异常、删除异常。耦合性高。软件开发的一个理念:低耦合、高内聚。如何来判断品牌和商品是两种不同的信息呢?《基于B2C的电子商城》4传播智慧,引领未来[小技巧]:看他们的生存周期-----生死时刻。品牌:apple1984年就有了商品:iphone62014年才有的商品和它的价格,生存周期就是一致的。有了这个商品,自然就要定一个价格。应该吧品牌单独的拿出来,用一张新的表保存。品牌和商品有关系,是一个什么样的关系呢?正反两个方向来看。一个品牌对应n个商品一个商品对应1个品牌综上所述:品牌和商品之间的关系一对多1:n如何体现这种一对多的关系呢?1的一方,称之为父表,多的一方称之为子表。需要在子表中增加一个字段,和主表中的主键进行关联,子表中的这个字段就是外键。由一张表到两张表,这个过程很重要。商品分类信息,同样也单独的保存到一张表中。商品分类表。《基于B2C的电子商城》5传播智慧,引领未来商品的扩展属性先看实际情况三星s6苹果6再来看书籍的情况Php书Mysql书《基于B2C的电子商城》6传播智慧,引领未来不同类型(书、手机)的商品有不同的扩展属性。商品的属性,对商品的描述,通常分为两种信息:基础信息:所有的商品都具备的属性,如商品名称,价格,缩略图。扩展信息:不同类型的商品,它的扩展信息是不同的,如服装,有材质,颜色,做工,手机则具备屏幕尺寸,操作系统,内存大小,摄像头,书籍具备出版社,作者,ISBN,印刷。不同类型的商品,它有不同的扩展属性,首先就需要把这些扩展属性保存起来。此时就有两种表,goods_type和attribute表。要注意,attibute表存到属性本身,不是某个商品的属性。商品和属性之间的关系。解决多对多的问题,需要引入第三张关联表。本项目商品模块的表设计ER图《基于B2C的电子商城》7传播智慧,引领未来思考:商品分类和商品类型有何区别?商品分类它是为商品服务,为了将商品进行分门别类的管理,商品类型是为属性服务的,二者的目的就不一样了。《基于B2C的电子商城》8传播智慧,引领未来四.编程思想思想决定高度。1.oop思想OOP:ObjectOrientedProgramming,面向对象程序设计,面向对象编程OOP的三大特征:封装,通过类实现的,将内部实现细节隐藏起来,给外部提供一个调用接口。继承,通过extends来实现的,子类可以继承父类的属性和方法(protected和public)多态,php本身就是多态的,php是弱类型的语言。在php中一般不怎么提到多态概念。OOP的好处:可维护性好可扩展性好可重用性好灵活度好我们的项目也是采用OOP的,所以就有很多类和方法。《基于B2C的电子商城》9传播智慧,引领未来2.mvc模式Mvc思想(重点)面试题。如何理解mvc?M:model,模型,负责完成具体的业务逻辑。V:view,视图,负责展示界面的。C:controller,控制器,负责程序调度的。(扮演的是交通警察的角色)核心思想:将业务逻辑和显示相分离。(将程序的输入,处理和输出分离开来)单一入口:index.php?m=Admin&c=goods&a=addm:表示模块,比如后台、前台c:控制器,如品牌控制器用来管理品牌的,分类控制器用来管理分类的。一个控制器对应一个类。a:动作,完成具体的某个操作,如增加品牌、显示品牌。对应控制器类中的方法。什么是业务逻辑?完成一个具体功能的细节。完成一个图片上传,就是一很具体的功能,具备很多细节。其实它就是一个业务逻辑。生成缩略图《基于B2C的电子商城》10传播智慧,引领未来通常说的模型层分两个:广义上的:指的是数据库处理层面和其它业务逻辑层面狭义上的:就是指数据库层面的。完整整个项目的核心?具体体现-----三板斧:写控制器写模型写视图五.ThinkPHP框架特点免费开源敏捷开发---快速开发面向对象MVC思想3.2版本1.安装及目录说明首先创建项目文件夹tp项目根目录默认情况下,application是一个空目录。《基于B2C的电子商城》11传播智慧,引领未来直接访问:localhost/tpHome目录结构如下:《基于B2C的电子商城》12传播智慧,引领未来三板斧:强调一个事情,要注意编码规范2.编码规范说明类文件都是以.class.php为后缀,大驼峰命名法,如GoodsController.class.php,并且保证类名和文件名一致。类的命名空间地址和所在的路径地址一致,例如Home\Controller\UserController类所在的路径应该是Application/Home/Controller/UserController.class.php;类中属性和方法名采用小驼峰命名规则,首字母小写;函数、配置文件等其他类库文件之外的一般是以.php为后缀;函数的命名使用小写字母和下划线的方式,例如get_client_ip;常量以大写字母和下划线命名,如HAS_ONE和MANY_TO_MANY;严格区分大小写注意代码缩进添加必要的注释3.快速入门案例(1).创建数据库#创建用户表createtableuser(idintunsignednotnullauto_incrementprimarykeycomment'用户编号',usernamevarchar(50)notnulldefault''comment'用户名',emailvarchar(50)notnulldefault''comment'电子邮箱',passwordchar(32)notnulldefault''comment'用户密码,md5加密',《基于B2C的电子商城》13传播智慧,引领未来reg_timeintunsignednotnulldefault0comment'用户注册时间')engine=MyISAMcharset=utf8;(2).定义配置文件在哪定义?参考附录中配置参考。完成对用户的crud操作。(3).编写控制器《基于B2C的电子商城》14传播智慧,引领未来(4).准备视图文件在view目录下,新建一个文件夹user,再在此文件夹下新建add.html,如下:http://localhost/tp/index.php/Home/User/add(5)调用模型完成入库操作《基于B2C的电子商城》15传播智慧,引领未来显示用户在user目录下,新建一个index.html文件,如下:《基于B2C的电子商城》16传播智慧,引领未来显示结果如下:编辑操作定义编辑的入口编写edit方法《基于B2C的电子商城》17传播智慧,引领未来删除操作一组操作就完成了。完成这个案例之后,再回头理解MVC。任务:实现前后台分离。需要创建一个admin模块和一个home模块。六.后台功能重点:做项目、业务逻辑在做后台功能的时候,要注意各个模块之间的先后顺序《基于B2C的电子商城》18传播智慧,引领未来接下来,分模块一个一个的完成,逐个击破。做每一个模块的具体思路是怎样的?分成三步:明确每一个的模块的目标和功能理解业务逻辑(表中每个字段是什么意思)按部就班的写每个功能(mvc)1.后台首页目标,显示后台首页。我们需要两个模块,一个后台admin模块,一个前台home模块。《基于B2C的电子商城》19传播智慧,引领未来当我们生成了后台目录之后,需要关闭这行代码,保证项目的正常运行。编写后台首页控制器,载入首页面。在view下创建Index目录,将模板文件拷贝到该目录下然后修改index.html模板页面《基于B2C的电子商城》20传播智慧,引领未来页面已经ok了Css样式和图片等不对?我们的css,js,图片应该放在哪里?《基于B2C的电子商城》21传播智慧,引领未来在admin模块下将静态资源拷贝到该文件夹下然后,如何在模板中引用呢。在index.php中定义常量。在模板中,使用常量。《基于B2C的电子商城》22传播智慧,引领未来其它地方也做相应修改。首页效果如下:2.后台登录控制除了登录页面本身,其它所有的操作都需要权限验证。首先,定义好整个项目的配置文件首先,定义一个后台基础控制器,用于验证。《基于B2C的电子商城》23传播智慧,引领未来然后,让其它控制器继承baseController。接下来,编写Login控制器如何生成验证码呢?使用tp自带的验证码类。查手册《基于B2C的电子商城》24传播智慧,引领未来定义模型完成验证用户名和密码操作《基于B2C的电子商城》25传播智慧,引领未来在控制器中调用模型完成验证定义一个注销方法《基于B2C的电子商城》26传播智慧,引领未来注意,修改top.html中的注销链接3.商品品牌管理(1).目标对商品品牌进行CRUD的操作。《基于B2C的电子商城》27传播智慧,引领未来(2).具体的业务逻辑此时,就需要了解表结构,每个字段代表什么含义?为什么是这个数据类型的?Logo:保存是品牌的图片,通常,图片是分两个方面来保存的,A.保存的是图片文件本身,通常是放在项目的某个目录之下B.将该图片的保存目录(相对于项目的根目录)保存到数据表中的。(3).添加品牌提示:表单中的各表单域name属性应该尽量和数据表中的字段名保持一致。不一致可以吗?可以,但是需要设置一些对应关系,比较麻烦。《基于B2C的电子商城》28传播智慧,引领未来如何实现验证呢?使用tp的自动验证功能。此时,需要自定义模型要使用自动功能,必须使用create()方法.任何一个表单的操作,都需要前端验证和后台验证前端验证是为了用户体验,使用javascript后台验证是为了数据的完整性,使用php最好的方法,是结合二者,就是ajax了。如何实现图片上传呢?使用tp自带的上传类。《基于B2C的电子商城》29传播智慧,引领未来创建uploads文件夹《基于B2C的电子商城》30传播智

1 / 77
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功