欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

一个简单的PHP网站结构

程序员文章站 2022-05-20 17:06:20
...
一个简单的PHP网站结构

由于之前学习过asp.net mvc的网站开发,因此,在新接触一门新的语言时,也会自然或不自然地参考这种经历,然后做出网站。如果你也是刚开始接触php,并从最原始的方式开始写网站,那么,你可以参考下面一种做法,它也是经过参考和探索而形成的 一种可能的PHP网站结构:

一种PHP网站结构

其中,网站名即为项目文件夹,文件夹下分有css、js、images、includes、templates、up等等文件夹,其功能如下:

目录及功能列表

css

专门用来存放css文件,一般每个模块独立成一个css文件,如用户(user.css),产品(product.css)等

images

用来存放网站所需的图片,如网站logo,背景图处,增删查改的图标等

includes

存放业务逻辑的代码,每个模块独立成一个文件,如用户(users.php),产品(products.php)等,每个文件是各种业务逻辑的处理方法的集合,如增、删等

集中存放js代码,如提交前验证,改善用户体验等,每个模块自成一个文件,如用户(user.js)

templates

这个是模块,如每个网页均需要html头部和html尾部,可以写成header.php,footer.php,然后在每个页面上把头和尾包含(include或require)一次,即可统一网站风格

up 存放用户上传的图片,先按类别,再按时间分成多个文件,如/up/user/2012/2/12/xxxx.jpg

根目录下,还会有许多独立的php文件,这些是呈现给用户的php文件,如用户注册(register.php),登录(login.php),首页(index.php)等文件。

接下来,将更详细地说明每个文件夹下功能的实现方式:

(1)css文件夹

这个文件夹主要是把一个模块的所有css文件集中在一起,可以一处定义多处引用,这样当需要修改时,只需要改一处,比较方便修改和维护。

如上所示,commom.css即是通用的Css属性,如链接的颜色,input元素去边框,统一规定网站文字大小,还有常见的clearfix或透明处理等代码,一般是会放在网站模板的头部(/templates/header.php);home.css则主要用在首页上;jquery-ui-1.8.19.custom.css则是jquery的标准界面文件

(2)images文件夹

主要是集中存放网站会用到的一些图片资源,如网站不同规格的logo,背景图片,增删查改的图标,加载图标等等

(3)includes文件夹

主要是集中保存业务逻辑处理文件,每个模块独立成一个文件,这些文件使用时,都需要进行包含(include或require):

其中,

a)_logOn.php是登录状态栏,并有一些快捷菜单,算是快捷通道板:

b)baseConfigus.php则是数据库配置信息,是一些常量,方便访问数据库是统一代码,且不易错:

c)commom.php是通用方法,如验证是否登录,是否管理员,上传文件,显示分页等

d)users.php则用来处理与用户有关的业务逻辑,如修改用户信息,登录等

(4)js文件夹

功能结构与includes文件夹类似,此不多述。

(5)templates文件夹

用来存放网站模板,整个网站的风格在此统一:

其中,header.php定义网页的头部,每个基本页面开头都需要包含它(include /templates/header.php):

footer.php定义网页的尾部,每个基本页面的末尾也需要包含它:

其中可以包含回顶部,到底部的功能,或者加上网站流量统计代码,如51la

header_admin.php和footer_admin.php则是后台页面使用的模板,道理类似。

(6)up文件夹

这个文件夹保存用户上传的各种图片,如用户头像,产品头像等,各成一个文件夹:

在用户文件夹下面,按年月日进行保存。

(7)根目录下的php文件

这些文件,一般就是直接面向用户的,即呈现给用户看的,虽然业务逻辑主要在includes文件夹中集中保存,但页面中不免仍需要一些访问数据库的代码。这些文件的共同特点是,必须包含网站模板,以统一风格:

下面以用户登录(login.php)为例:

a)头部

b)尾部

c)中间

注意,这里主要是html语言写成的用户界面,需要一些构成:

css或js引用,form,提交前的有效性验证onsubmit="return validateLogin();",以及登录出错时保留用户之前输入的信息if($_SERVER['REQUEST_METHOD']=='POST'){print $_POST['name'];}等

d)登录提交(post方式)的处理,这里采用同一个页面进行处理

即提交时,仍跳转到当前页面,只是需要对提交方式进行判断(是get还是post),然后做出不同的处理:

其中Get方式时,若已经登录,则自动跳转到首页;若是Post方式时,时进行登录验证,验证成功则跳转到首页,失败时停留在当前页面。

(8).一些处理技巧:

a)借鉴C#的String.Format方法(保存在/includes/commom.php中):

使用时,很方便,如打印从数据库中读出的数据时:

b)由于以上一步a)的方式访问时,关于引号(单引号和双引号的问题),有时难以进行转义或转义时即出错,因此,可能灵活使用jquery来进行事件绑定(而非html元素事件的方式),如删除前的确认提示:

本文由bluesky原创,具有独立产权,如转载请注明出处。