设为首页 收藏本站
查看: 840|回复: 0

[经验分享] 一个简单的PHP网站结构

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-23 10:37:37 | 显示全部楼层 |阅读模式
一个简单的PHP网站结构


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


一种PHP网站结构
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/8016C048B95342859134DDB1DF89938A/clipboard.png


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

目录

功能

css

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

images

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

includes

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

js

集中存放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文件夹
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/CA4E6490CC9348A9940CDF5AC5D9C772/clipboard.png
这个文件夹主要是把一个模块的所有css文件集中在一起,可以一处定义多处引用,这样当需要修改时,只需要改一处,比较方便修改和维护。
如上所示,commom.css即是通用的Css属性,如链接的颜色,input元素去边框,统一规定网站文字大小,还有常见的clearfix或透明处理等代码,一般是会放在网站模板的头部(/templates/header.php);home.css则主要用在首页上;jquery-ui-1.8.19.custom.css则是jquery的标准界面文件



(2)images文件夹
主要是集中存放网站会用到的一些图片资源,如网站不同规格的logo,背景图片,增删查改的图标,加载图标等等
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/0145B062EF6F4E9187EAC7429EA5A7C2/clipboard.png


(3)includes文件夹
主要是集中保存业务逻辑处理文件,每个模块独立成一个文件,这些文件使用时,都需要进行包含(include或require):
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/7431F054097A43879372C6A6968D5DC0/clipboard.png
其中,
a)_logOn.php是登录状态栏,并有一些快捷菜单,算是快捷通道板:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/EE0F7D9E756C48EE8E72D22EE4A4663E/clipboard.png
b)baseConfigus.php则是数据库配置信息,是一些常量,方便访问数据库是统一代码,且不易错:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/B1345EB94CA24AA192151F072E89D629/clipboard.png
c)commom.php是通用方法,如验证是否登录,是否管理员,上传文件,显示分页等
d)users.php则用来处理与用户有关的业务逻辑,如修改用户信息,登录等
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/2E6F6355EFC248DD9D3F04E0905EDE76/clipboard.png


(4)js文件夹
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/8BE68EA7DCAC4BC6BA86B04EA4105B90/clipboard.png
功能结构与includes文件夹类似,此不多述。


(5)templates文件夹
用来存放网站模板,整个网站的风格在此统一:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/62417514D4544601A71299B637672541/clipboard.png
其中,header.php定义网页的头部,每个基本页面开头都需要包含它(include /templates/header.php):
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/843FE8AA2FAE4E658A18908E28D7A3B8/clipboard.png
footer.php定义网页的尾部,每个基本页面的末尾也需要包含它:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/64C7AC889AB54CE59012080A453FFB38/clipboard.png
其中可以包含回顶部,到底部的功能,或者加上网站流量统计代码,如51la


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


(6)up文件夹
这个文件夹保存用户上传的各种图片,如用户头像,产品头像等,各成一个文件夹:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/288D099DD22B40C59AB5BD0F8FAA1B86/clipboard.png
在用户文件夹下面,按年月日进行保存。


(7)根目录下的php文件
这些文件,一般就是直接面向用户的,即呈现给用户看的,虽然业务逻辑主要在includes文件夹中集中保存,但页面中不免仍需要一些访问数据库的代码。这些文件的共同特点是,必须包含网站模板,以统一风格:
下面以用户登录(login.php)为例:
a)头部
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/FBB2A9150C694672AE84555A416BE089/clipboard.png
b)尾部
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/2B8B0ABE7B374D81B5A56CF698C7FA82/clipboard.png
c)中间
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/C5257407CA3F4FB3993FC1A2521B32FF/clipboard.png
注意,这里主要是html语言写成的用户界面,需要一些构成:
css或js引用,form,提交前的有效性验证,以及登录出错时保留用户之前输入的信息if($_SERVER['REQUEST_METHOD']=='POST'){print $_POST['name'];}等
d)登录提交(post方式)的处理,这里采用同一个页面进行处理
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/F9AE32E266184A2480FC74F1FC3B527F/clipboard.png
即提交时,仍跳转到当前页面,只是需要对提交方式进行判断(是get还是post),然后做出不同的处理:
其中Get方式时,若已经登录,则自动跳转到首页;若是Post方式时,时进行登录验证,验证成功则跳转到首页,失败时停留在当前页面。


(8).一些处理技巧:
a)借鉴C#的String.Format方法(保存在/includes/commom.php中):
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/AE11FC6F893449F0AAF33984F0075958/clipboard.png
使用时,很方便,如打印从数据库中读出的数据时:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/2F4DAE4825854669897BE0E14CFFC410/clipboard.png
b)由于以上一步a)的方式访问时,关于引号(单引号和双引号的问题),有时难以进行转义或转义时即出错,因此,可能灵活使用jquery来进行事件绑定(而非html元素事件的方式),如删除前的确认提示:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C|/Users/Administrator/AppData/Local/youdao/ynote/images/5989EAA3868D4B3E9FEAB32B93FE888D/clipboard.png


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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-102893-1-1.html 上篇帖子: PHP,JAVA,NET 开发比较 下篇帖子: Hessian通讯协议【附PHP源代码】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表