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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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

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

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

四、商品分类管理4.1、数据库配置4.1.1、创建电商数据库 项目01_笔记815.png
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与数据库的交互信息 项目01_笔记1270.png
4.2、分类控制器及模型创建4.2.1、修改控制器的继承关系
目前是所有控制器都是继承TP的控制器,后期做一个公共操作时,例如登录需要在每个控制器都要执行。如果简单的修改就需要修改到TP的源代码。因此可以自己创建一个公共控制器,而该控制器时继承TP的控制器的。然后让其他的所有控制器继承该公共控制器即可
①创建公共控制器
项目01_笔记1434.png
②修改Index控制器继承关系
项目01_笔记1452.png
③创建分类的控制器
项目01_笔记1464.png
4.2.2、创建模型
①创建公共模型
项目01_笔记1485.png
②创建分类模型
项目01_笔记1495.png
4.3、商品分类的添加4.3.1、展示出添加页面
①创建方法展示出模板
项目01_笔记1534.png
②创建Cagetory目录
项目01_笔记1550.png
③拷贝分类添加模板
项目01_笔记1562.png
④修改资源地址
项目01_笔记1572.png
4.3.2、数据入库
①自定义字段
项目01_笔记1592.png
②创建自动验证
项目01_笔记1602.png
③接受数据入库
项目01_笔记1612.png
4.4、实现可以添加为子分类
①控制器中调用模型方法获取数据
项目01_笔记1645.png
②在模型中创建getCaetTree方法获取数据
项目01_笔记1672.png
③在模型中创建getTree方法格式化数据
项目01_笔记1696.png
④模板中对数据进行循环展示
项目01_笔记1712.png
4.5、模板继承使用
①在视图目录下创建Public目录
项目01_笔记1743.png
②复制categoryadd的模板改名为base
项目01_笔记1771.png
③对公共模板进行修改
项目01_笔记1784.png
④对分类的添加模板使用继承
项目01_笔记1800.png
4.6、商品分类的列表显示
①控制器中获取数据并且赋值给模板
项目01_笔记1833.png
②拷贝模板
项目01_笔记1841.png
③修改模板
项目01_笔记1849.png
项目01_笔记1851.png
4.7、商品分类的删除
①修改分类列表中的删除链接
项目01_笔记1879.png
②控制器中实现删除
项目01_笔记1891.png
③在模型中实现删除
项目01_笔记1903.png
4.8、商品分类的编辑4.8.1、显示出要编辑的分类信息
①先给分类的列表增加修改的连接地址
项目01_笔记1953.png
②创建edit方法显示出分类的信息
项目01_笔记1973.png
③在公共模型中封装方法获取数据
项目01_笔记1991.png
④拷贝模板
项目01_笔记1999.png
⑤ 修改显示数据获取所有的分类信息
项目01_笔记2019.png
⑥模板中进行默认的数据显示
项目01_笔记2035.png
项目01_笔记2037.png
项目01_笔记2039.png

4.8.2、提交分类数据进行修改
①在修改的模板中增加隐藏域
项目01_笔记2072.png
②接受数据进行修改
项目01_笔记2084.png
③在分类模型中定义update方法进行数据修改
项目01_笔记2110.png
④修改分类的修改功能
目前的修改的功能可以将自己设置为父分类。因此存在问题。
将当前分类的父分类设置自己的子分类也会存在问题
不能讲父分类设置为自己以及自己下面的所有的子分类
[size=14.0000pt]1、修改getCatetree方法可以获取某个分类的子分类
项目01_笔记2228.png
[size=14.0000pt]2、在修改的之前进行判断
项目01_笔记2241.png
[size=14.0000pt]3、修改报错信息
项目01_笔记2250.png
五、商品管理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、显示出商品添加页面
①创建控制器加载模板
项目01_笔记3479.png
②在视图目录下创建goods目录
项目01_笔记3498.png
③复制分类的添加模板到Goods目录下
项目01_笔记3520.png
③修改对应的表单
项目01_笔记3531.png
④控制器获取所有的分类数据
项目01_笔记3547.png
⑤模板显示出分类
项目01_笔记3558.png
5.2.2、商品基本信息入库
①创建商品模型并且自定义字段
项目01_笔记3590.png
②定义自动验证
项目01_笔记3600.png
③控制器调用模型进行数据写入
项目01_笔记3617.png
5.2.3、解决商品入库中的问题
问题一:在商品写入数据时没有时间
问题二:对货号的处理,当用户输入货号的时候,需要检查货号是否重复。如果没有输入需要生产一个货号
①在模型中添加钩子函数处理数据
项目01_笔记3717.png
②根据错误信息显示出报错
项目01_笔记3732.png
5.2.4、使用ueditor编辑器
①下载编辑器的源代码
②在Public目录下创建ueditor目录
项目01_笔记3787.png
③将源代码拷贝到ueditor目录下
项目01_笔记3808.png
④在添加页面中引入编辑器的js源代码
项目01_笔记3829.png
⑤引入编辑器的占位
项目01_笔记3841.png
⑥初始化编辑器
项目01_笔记3851.png
5.2.5、实现图片上传及缩略图制作
①手动的创建图片保存的根目录
项目01_笔记3887.png
②在钩子方法中实现图片上传
项目01_笔记3903.png
③根据上传的图片制作缩略图
项目01_笔记3919.png


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



23 个回复

倒序浏览
回复 使用道具 举报
swallow25715902 来自手机 中级黑马 2017-12-4 15:45:40
藤椅
内容很详细!
回复 使用道具 举报
咸鱼666 来自手机 中级黑马 2017-12-4 15:47:14
板凳
6666666666666666
回复 使用道具 举报
PHP老曹 来自手机 高级黑马 2017-12-4 15:47:57
报纸
纯技术,受教了
回复 使用道具 举报
不明觉厉!棒棒哒!
回复 使用道具 举报
gy_yt 来自手机 中级黑马 2017-12-4 15:51:28
7#
受教了,666
回复 使用道具 举报
棒棒哒,够全的
回复 使用道具 举报
nhm 来自手机 中级黑马 2017-12-4 15:54:34
9#
内容很详细很好
回复 使用道具 举报
问渠那得清如许,唯有源头活水来
回复 使用道具 举报
yuxiaoyi 来自手机 中级黑马 2017-12-4 15:57:17
11#
内容很赞
回复 使用道具 举报
第一次看到这么详细的php项目贴,厉害厉害
回复 使用道具 举报
许言 来自手机 中级黑马 2017-12-4 15:59:15
13#
顶顶顶顶顶
回复 使用道具 举报
不明觉厉
回复 使用道具 举报
猫先森 来自手机 中级黑马 2017-12-4 16:13:34
15#
学习的东西越来越多。赞赞赞
回复 使用道具 举报
奔跑地小少女 来自手机 中级黑马 2017-12-4 16:14:28
16#
抢沙发没抢到啊!
回复 使用道具 举报
amazing,实力黑马
回复 使用道具 举报
Rocket_冷风 来自手机 中级黑马 2017-12-4 16:48:11
18#
6666666666666666666666
回复 使用道具 举报
张艺凡老师 来自手机 中级黑马 2017-12-4 16:50:18
19#
棒棒哒~
回复 使用道具 举报
学习了。。。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马