打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PHP教程(20)项目结构+项目流程+后台管理+登陆功能
userphoto

2022.07.18 广东

关注

回顾

PDO:数据库抽象层

PDO三大类:PDO类(初始化连接,发送SQL语句),PDOStatement类(数据操作,执行预处理),PDOException类(异常处理)

过程:

1.      连接:new PDO2.发送SQLexec/query/prepare;3.解析结果(fetch系列/execute;4.释放资源(两个对象:PDO对象和PDOStatement对象)

异常处理:try{//有可能出错的语句//主动抛出异常throw new PDOException;}catch(PDOException $e){//自定义的错误处理方式}

反射:帮助程序员更好的了解一个类的内部结构,从而更好的去使用类。


安装ecshop

1.      下载ecshopecshop是一种b/s结构软件,b/s结构的安装,大部分的情况下指的是将已经提供好(打包)的数据(数据库SQL)在本地进行安装。下载地址:http://www.ecshop.com

2.      解压安装

a)        解压

b)        解压文件内部文件夹内有三个文件:

c)        将核心包(upload),移动到服务器网站根目录(htdocs),并且重命名为ecshop

d)        安装:在浏览器中打开进入到ecshop的环境:/install/index.php

3.      安装步骤

a)        协议界面

b)        环境监测界面

发现不支持图片处理,而ecshop需要图片处理。

PHP需要借助图片处理扩展:GD扩展。需要在php.ini中加载gd扩展

重启Apache服务器

c)        刷新环境监测界面

d)        系统环境配置界面

                        i.             数据库环境配置

                      ii.             管理员配置(后台管理员信息)

                     iii.             数据配置(选择系统提供的模拟数据)

4.      点击安装(系统自动安装)

5.      查看ecshop的目录结构

前台部分

后台部分

6.      进入到前后台

进入之后都会出现很多错误,错误的原因是PHP版本的不兼容,所以需要关闭错误信息。针对性的关闭ecshop的错误处理。

必须修改前台和后台的公共文件:init.php,在这两个文件里面都有控制当前项目是否显示错误的信息。(display_error)

前台init.php

后台init.php

删除原来系统遗留的缓存文件和安装目录

项目制作

需求:帮助传智播客做一套电子商务网站,用户能够选择商品并进行购车和订单处理,能够进行在线支付,支付完成之后就会发货(虚拟或者实物),用户点击收货。

注意:不希望使用任何人已经写好的任何成熟的代码。

项目架构

项目架构包含三个部分:项目结构,代码结构,数据库结构

项目结构:确定项目采用什么形式进行开发

1.      确定使用什么语言进行开发?                                  --- Javaphpaspjsp…      PHP

2.      软件架构:c/sb/s                                                                                                               b/s

3.      代码开发模式 :源码,框架,二次开发                                                                      源码

数据库结构:确定采用什么数据库来进行数据处理

1.      根据数据的使用方式来选择数据库类型:关系型和非关系型                             关系型

2.      根据数据的实际的并发程度选择数据库产品:mysqloracleaccess             mysql

3.      根据数据的安全来选择存储引擎:myisamInnoDB                                             默认的

4.      数据库命名规范:前缀(与项目名字)+名字

5.      字符集                                                                                                                                         utf8

代码结构:规定代码改如何开发和保存

1.      目录结构保存文件:扁平化和树状结构                                                                       树状结构

2.      文件命名规范:见名知意,类必须使用:类名.class.php

3.      开发模式:面向过程和面向对象混合

4.      设计思想:不同逻辑的代码进行分文件保存,业务逻辑交给php文件,数据逻辑交给php的类文件,数据显示交给html文件,所有的请求都只请求php文件(是类文件和html文件连接的纽带)

5.      文件编码:utf-8

6.      操作数据库模式:PDOmysqlmysqli                                                                         mysql

7.      版本控制:采用什么方式控制文件安全                                                                       SVN

项目安排

仿照ecshop的后台的结构,增加一个shop的项目,采用php源码开发,使用面向过程和面向对象混搭的思想,采用mvc的模式实现。

shop项目

项目目录结构搭建

前后台放到一起,后台新建一个文件夹admin,放到前台文件的里面

1.      在网站根目录(虚拟主机),建立一个文件夹叫D:/class/php141115/shop

2.      搭建前台环境文件夹结构

3.      搭建后台目录结构

4.      将所有该项目的模板文件(前端提供好的)放到templates文件夹下。

搭建虚拟主机

1.      Apachehttpd-vhosts.conf配置虚拟主机

2.      配置域名服务器:hosts

3.      重启Apache

4.      验证:在浏览器中输入www.shop.com

凡是请求的功能类似的文件都放到一个文件里面:登录,退出和验证码都与权限相关,因此创建一个权限的php文件,所有的登录,退出和验证码功能,都请求权限文件。

后台权限管理

获取登录界面

后台权限管理php文件成为权限管理模块。处理多个跟权限相关的功能。

1.      在后台新增一个叫做权限的php文件:/admin/privilege.php

2.      用户请求该文件的第一出发点:为了获得一个登录表单。privilege.php要做的第一件事情:就是给用户提供一个登录表单。

用户不允许直接请求html模板文件,只允许请求对应的根目录下的php文件。

3.      ecshop下面的样式文件和js文件和图片文件全部搬过来,放到后台admin目录下对应的jsstylesimages下面。

登录验证

1.      要确定当前登录表单的提交对象是谁?因为登录验证属于权限验证的范围,提交的对象是privilege.php/admin/templates/login.html

2.      为了告诉服务器当前的请求的操作是什么,给所有的每次请求都携带数据(参数),如果是get请求在超链接之后增加一个数据,如果是post请求,在表单中增加一个数据(隐藏域)。/admin/templates/login.html

3.      服务器要接收数据:/admin/privilege.php

4.      判断动作,根据不同的动作做不同的操作。

5.      接收用户信息。/admin/privilege.php|act=check

6.      验证数据的合法性。/admin/privilege.php|act=check

7.      增加公共文件:设置浏览器的显示字符集和跳转

a)        显示字符集。/admin/includes/init.php

加载初始化文件:任何一个可以被用户直接请求的php文件的第一件事应该加载初始化文件。/admin/privilege.php

b)        网站文件夹对应的绝对路径常量

c)        增加后台的跳转函数。函数是功能,不是初始化,因此应该单独存在于一个文件。/admin/includes/functions.php,存放所有的公共方法

因为每个被请求的php脚本都有可能用到跳转函数,所以需要为每个php文件在一开始的时候就加载跳转函数:admin/includes/init.php

d)        增加一个系统控制函数,控制系统的错误处理:ini_set(),当前经过这个函数的设置之后,配置文件临时生效。admin/includes/init.php

8.      验证用户信息的有效性:判断当前用户信息在数据库是否存在。

a)        搭建数据库环境

b)        所有的数据库的操作,都应够由对应的DB类去操作。将DB类放到/includes/DB.class.php

c)        修改DB类,适应项目。

给数据库类DB,增加表前缀

d)        任何一张表的操作都应该是单独封装一个类来实现,而对应的类调用DB类里面的方法去实现。/admin/includes/User.class.php

e)        在权限管理文件中,需要对user表进行操作的地方(增删改查)得到该类的对象,然后去进行数据库的操作。/admin/privilege.php|act=check

f)         自动加载类。/admin/includes/functions.php

g)        增加一个验证用户信息的方法:/admin/includes/User.class.php

h)        判断数据库的查询结果,根据结果做不同的操作。/admin/privilege.php|act=check

配置文件

1.      在前台增加一个配置文件,用来配置系统的相关的设置信息:数据库信息。/config/config.php

2.      增加配置文件的绝对路径。/admin/includes/init.php

3.      加载配置文件。在init中加载,因为每次请求都需要连接数据,而每次请求也都需要加载init.php/admin/includes/init.php

4.      DB类的构造方法使用$config配置信息。/includes/DB.class.php

代码流程

首页功能

首页功能就是对应的index.php,首页的功能就是将首页的框架正常显示。所有跟首页显示相关的模板都应该请求index.php

1.      判断用户的动作,先接收动作。

2.      加载初始化文件:/admin/index.php

3.      要根据不同的动作做不同的事情,加载主框架

4.      修改框架内部的请求对象。/admin/templates/index.html

5.      根据不同的请求,加载不同的框架的部分。/admin/index.php

首页功能原理

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ECshop模板机制整理
实现ecshop二次加模板后台可以管理
ecshop二次开发 结构分析和代码研究 呵呵
ECSHOP去掉前台模板以及后台官网版权链接的详细教程
ecshop程序结构说明
phpcms学习总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服