黑马程序员技术交流社区
标题: 【黑马程序员杭州】PHP课程笔记项目day01--电商项目的部署 [打印本页]
作者: 小江哥 时间: 2017-12-4 12:16
标题: 【黑马程序员杭州】PHP课程笔记项目day01--电商项目的部署
本帖最后由 小江哥 于 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控制器的命名空间
③访问测试
[attach]199993[/attach]
二、电商项目URL地址优化2.1、URL地址优化的具体方法[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目录
②复制category中add的模板改名为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、实现图片上传及缩略图制作①手动的创建图片保存的根目录
②在钩子方法中实现图片上传
③根据上传的图片制作缩略图
众览群雄,唯我杭城独秀—一贴汇总杭州校区所有就业薪资
作者: Port 时间: 2017-12-4 12:45
作者: swallow25715902 时间: 2017-12-4 15:45
内容很详细!
作者: 咸鱼666 时间: 2017-12-4 15:47
6666666666666666
作者: PHP老曹 时间: 2017-12-4 15:47
纯技术,受教了
作者: 秋子菇凉 时间: 2017-12-4 15:50
不明觉厉!棒棒哒!
作者: gy_yt 时间: 2017-12-4 15:51
受教了,666
作者: 刘华莎 时间: 2017-12-4 15:53
棒棒哒,够全的
作者: nhm 时间: 2017-12-4 15:54
内容很详细很好
作者: 采姑娘的小蘑菇 时间: 2017-12-4 15:55
问渠那得清如许,唯有源头活水来
作者: yuxiaoyi 时间: 2017-12-4 15:57
内容很赞
作者: 阿布乙 时间: 2017-12-4 15:57
第一次看到这么详细的php项目贴,厉害厉害
作者: 许言 时间: 2017-12-4 15:59
顶顶顶顶顶
作者: 小核桃仁 时间: 2017-12-4 16:04
不明觉厉
作者: 猫先森 时间: 2017-12-4 16:13
学习的东西越来越多。赞赞赞
作者: 奔跑地小少女 时间: 2017-12-4 16:14
抢沙发没抢到啊!
作者: huangjinchao.ar 时间: 2017-12-4 16:17
amazing,实力黑马
作者: Rocket_冷风 时间: 2017-12-4 16:48
6666666666666666666666
作者: 张艺凡老师 时间: 2017-12-4 16:50
棒棒哒~
作者: 从此学好 时间: 2017-12-4 16:51
学习了。。。
作者: fangmifang618 时间: 2017-12-4 16:52
看不懂,但是感觉很厉害
作者: 程代明 时间: 2017-12-4 17:26
非常详细
作者: patronli 时间: 2017-12-4 17:46
特别完美啊
作者: 黑马6666 时间: 2017-12-5 15:30
666666666666
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |