A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小江哥 于 2017-12-5 14:34 编辑

    各位同学,大家好!欢迎关注我们杭州黑马PHP课程,接下来的一段时间我们将会有不同阶段的老师给同学们分享PHP课程的基础篇以及项目篇。这节课程主要是给大家分享项目篇。从项目的部署一直到项目的整理架构,流程,希望能给大家的编程学习带来帮助,当然在学习中遇到了问题也可以回帖进行提问,我们还会不定时的在公众平台派送一些意想不到的惊喜呦!!!

    部署环境是开始项目的前提,那下面就详细的给大家介绍一下如何部署PHP项目:
一、电商项目部署
1.1、项目部署步骤
1、配置虚拟主机
2、使用TP生成项目应用代码
3、手动创建后台模块
1.2、虚拟主机的配置
①创建项目的根目录
②在jxshop目录下创建wwwroot目录
将虚拟主机的域名解析的目录指向到wwwroot目录下对项目的安全性更高
③配置虚拟主机
④修改本地的hosts文件
⑤重启Apache访问域名

1.3、使用TP生产应用代码
①拷贝TP框架源代码到wwwroot同级目录
②拷贝入口文件及重写规则文件
③修改入口文件
④访问生成代码
1.4、手动创建后台模块
①复制Home模块改名为Admin  
②修改Index控制器的命名空间
③访问测试
二、电商项目URL地址优化2.1URL地址优化的具体方法
[size=14.0000pt]1、隐藏项目的入口文件
[size=14.0000pt]2、隐藏默认的Home模块
2.2、隐藏项目的入口文件
①开启Apache的重写模块
②设置虚拟主机容许重写
③拷贝TP提供的默认的重写规则文件
④修改项目的配置设置为重写模式
⑤测试访问
2.3、设置Home为默认的模块
①修改配置项设置默认模块
②增加设置容许访问的模块
③访问测试
④测试使用U函数生成URL地址
效果如下
三、后台首页的展示3.1、后台资源文件拷贝
①在域名对应的目录下创建Public目录
②在Public目录下创建Admin目录
③将资源文件进行拷贝
3.2、展示后台页面
①修改代码加载模板
②在视图目录下创建Index目录
③拷贝首页的模板到Index目录下
3.3、解决显示错乱问题
①增加三个方法加载模板
②拷贝三个模板到index目录下
③修改配置项设置自定义的模板替换
④修改top中的资源地址
⑤修改menu的资源地址
⑥修改main模板

四、商品分类管理4.1、数据库配置4.1.1、创建电商数据库
4.1.2、创建分类的数据表
[size=14.0000pt]1、数据表创建的常用原则
  每张表都需要有一个主键标识
  每个字段劲量的设置为不容许为空然后给上默认值
  每个字段的数据类型选择尽量选择小的类型
[size=14.0000pt]2、实现分类数据表的创建
CREATE TABLE `jx_category` (
  `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `cname` char(50) NOT NULL DEFAULT '' COMMENT '分类名称',
  `parent_id` smallint(6) NOT NULL DEFAULT '0' COMMENT '分类的父分类ID',
  `isrec` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否推荐 0表示不推荐1表示推荐',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4.1.3、配置TP与数据库的交互信息
4.2、分类控制器及模型创建4.2.1、修改控制器的继承关系
目前是所有控制器都是继承TP的控制器,后期做一个公共操作时,例如登录需要在每个控制器都要执行。如果简单的修改就需要修改到TP的源代码。因此可以自己创建一个公共控制器,而该控制器时继承TP的控制器的。然后让其他的所有控制器继承该公共控制器即可
①创建公共控制器
②修改Index控制器继承关系
③创建分类的控制器
4.2.2、创建模型
①创建公共模型
②创建分类模型
4.3、商品分类的添加4.3.1、展示出添加页面
①创建方法展示出模板
②创建Cagetory目录
③拷贝分类添加模板
④修改资源地址
4.3.2、数据入库
①自定义字段
②创建自动验证
③接受数据入库
4.4、实现可以添加为子分类
①控制器中调用模型方法获取数据
②在模型中创建getCaetTree方法获取数据
③在模型中创建getTree方法格式化数据
④模板中对数据进行循环展示
4.5、模板继承使用
①在视图目录下创建Public目录
②复制categoryadd的模板改名为base
③对公共模板进行修改
④对分类的添加模板使用继承
4.6、商品分类的列表显示
①控制器中获取数据并且赋值给模板
②拷贝模板
③修改模板
4.7、商品分类的删除
①修改分类列表中的删除链接
②控制器中实现删除
③在模型中实现删除
4.8、商品分类的编辑4.8.1、显示出要编辑的分类信息
①先给分类的列表增加修改的连接地址
②创建edit方法显示出分类的信息
③在公共模型中封装方法获取数据
④拷贝模板
⑤ 修改显示数据获取所有的分类信息
⑥模板中进行默认的数据显示

4.8.2、提交分类数据进行修改
①在修改的模板中增加隐藏域
②接受数据进行修改
③在分类模型中定义update方法进行数据修改
④修改分类的修改功能
目前的修改的功能可以将自己设置为父分类。因此存在问题。
将当前分类的父分类设置自己的子分类也会存在问题
不能讲父分类设置为自己以及自己下面的所有的子分类
[size=14.0000pt]1、修改getCatetree方法可以获取某个分类的子分类
[size=14.0000pt]2、在修改的之前进行判断
[size=14.0000pt]3、修改报错信息
五、商品管理5.1、商品数据表创建
CREATE TABLE `jx_goods` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '商品ID',
  `goods_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品名称',
  `goods_sn` char(30) NOT NULL DEFAULT '' COMMENT '商品货号',
  `cate_id` smallint(6) NOT NULL DEFAULT '0' COMMENT '商品分类ID 对于category表中的ID字段',
  `market_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '市场售价',
  `shop_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '本店售价',
  `goods_img` varchar(255) NOT NULL DEFAULT '' COMMENT '商品缩略图',
  `goods_thumb` varchar(255) NOT NULL DEFAULT '' COMMENT '商品缩略小图',
  `is_hot` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否热卖 1表示热卖 0表示不是',
  `is_rec` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否推荐 1表示推荐 0表示不推荐',
  `is_new` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否热卖 1表示新品 0表示不是',
  `addtime` int(11) NOT NULL DEFAULT '0' COMMENT '添加时间',
  `isdel` tinyint(4) NOT NULL DEFAULT '1' COMMENT '表示商品是否删除 1正常 0删除状态',
  `is_sale` tinyint(4) NOT NULL DEFAULT '1' COMMENT '商品是否销售 1销售 0下架状态',
  PRIMARY KEY (`id`),
  UNIQUE KEY `goods_sn` (`goods_sn`) USING BTREE,
  KEY `goods_name` (`goods_name`) USING BTREE,
  KEY `isdel` (`isdel`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
5.2、商品数据入库5.2.1、显示出商品添加页面
①创建控制器加载模板
②在视图目录下创建goods目录
③复制分类的添加模板到Goods目录下
③修改对应的表单
④控制器获取所有的分类数据
⑤模板显示出分类
5.2.2、商品基本信息入库
①创建商品模型并且自定义字段
②定义自动验证
③控制器调用模型进行数据写入
5.2.3、解决商品入库中的问题
问题一:在商品写入数据时没有时间
问题二:对货号的处理,当用户输入货号的时候,需要检查货号是否重复。如果没有输入需要生产一个货号
①在模型中添加钩子函数处理数据
②根据错误信息显示出报错
5.2.4、使用ueditor编辑器
①下载编辑器的源代码
②在Public目录下创建ueditor目录
③将源代码拷贝到ueditor目录下
④在添加页面中引入编辑器的js源代码
⑤引入编辑器的占位
⑥初始化编辑器
5.2.5、实现图片上传及缩略图制作
①手动的创建图片保存的根目录
②在钩子方法中实现图片上传
③根据上传的图片制作缩略图


众览群雄,唯我杭城独秀—一贴汇总杭州校区所有就业薪资



23 个回复

正序浏览
黑马6666 来自手机 初级黑马 2017-12-5 15:30:13
24#
666666666666
回复 使用道具 举报
patronli 来自手机 中级黑马 2017-12-4 17:46:43
23#
特别完美啊
回复 使用道具 举报
程代明 来自手机 中级黑马 2017-12-4 17:26:27
22#
非常详细
回复 使用道具 举报
fangmifang618 来自手机 中级黑马 2017-12-4 16:52:54
21#
看不懂,但是感觉很厉害
回复 使用道具 举报
学习了。。。
回复 使用道具 举报
张艺凡老师 来自手机 中级黑马 2017-12-4 16:50:18
19#
棒棒哒~
回复 使用道具 举报
Rocket_冷风 来自手机 中级黑马 2017-12-4 16:48:11
18#
6666666666666666666666
回复 使用道具 举报
amazing,实力黑马
回复 使用道具 举报
奔跑地小少女 来自手机 中级黑马 2017-12-4 16:14:28
16#
抢沙发没抢到啊!
回复 使用道具 举报
猫先森 来自手机 中级黑马 2017-12-4 16:13:34
15#
学习的东西越来越多。赞赞赞
回复 使用道具 举报
不明觉厉
回复 使用道具 举报
许言 来自手机 中级黑马 2017-12-4 15:59:15
13#
顶顶顶顶顶
回复 使用道具 举报
第一次看到这么详细的php项目贴,厉害厉害
回复 使用道具 举报
yuxiaoyi 来自手机 中级黑马 2017-12-4 15:57:17
11#
内容很赞
回复 使用道具 举报
问渠那得清如许,唯有源头活水来
回复 使用道具 举报
nhm 来自手机 中级黑马 2017-12-4 15:54:34
9#
内容很详细很好
回复 使用道具 举报
棒棒哒,够全的
回复 使用道具 举报
gy_yt 来自手机 中级黑马 2017-12-4 15:51:28
7#
受教了,666
回复 使用道具 举报
不明觉厉!棒棒哒!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马