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