SpeedPHP/大规模系统部署
SpeedPHP | 快速入门 | 访问交互 | 数据操作 | 框架概述 | 模板引擎 | 优化加速 | 开发指南 | 数据模型 | API参考 |
本条目将讲述如何构架一个适合大规模应用程序的目录结构,以及应用目录的合理性建议。
请注意,如果是小型应用程序,使用SpeedPHP默认的controller / model等几个目录结构即可,这里讲述的是针对较大规模应用程序的部署。
大规模部署SP框架的目录结构建议[ ]
首先我们来看一下本文将解决哪些问题:
- sp框架能否支持modules(模块)式的开发? 支持
- sp框架如何部署成多入口的应用程序?
- 如何共用类库?
- 如何放置各种页面模板?
- 各应用程序(模块)如何共用同一配置信息?
- sp框架能放在任何目录下使用吗? 可以
- 媒体文件(图片、样式、JS脚本)如何放置比较合理?
- 目录安全性建议?
实例下载:http://speedphp.com/cms/uploads/release-dirs.zip
截图:
下面介绍各目录和文件的作用。
config.php[ ]
config.php文件是全站通用配置文件,config.php的作用包括:
- 定义APP_PATH和SP_PATH常量,由于config.php文件的位置在应用程序主目录,所以config.php可以替代入口文件来定义这两个常量。
- 对应用程序进行部分设置,比如时区设置。
- 载入其他库类文件,比如载入用户自定义的函数文件(本例中是lib/functions.php文件)
- 定义全站通用配置,如数据库定义,模板引擎定义等,也就是$spConfig的定义。这里要注意本例中相关的多个路径配置已被改变,如model目录的被定义成了“APP_PATH.'/lib'”。
index.php admin.php member.php produce.php[ ]
各模块(模块也是:modules / 子系统 / 应用程序,以下都以模块为统称)的入口文件,每个入口文件均可以代表一个模块,在各个入口文件中,还可以定义以下内容:
- 首先必须载入config.php文件
- 定义本模块的controller(控制器)路径,如admin.php中对controller路径的定义为“$spConfig['controller_path'] = APP_PATH.'/modules/'.basename(__FILE__,".php");”,该语言可以自动获取到入口文件的名称,并设置该模块的控制器目录与入口文件名称一致。也就是说,admin.php入口文件对应的控制器文件目录就是 APP_PATH / modules / admin 目录。
- 载入SpeedPHP,开始执行程序。
lib目录[ ]
放置网站共用的类库文件,类库文件包括数据库模型类(spModel的派生类),操作类,第三方类库以及用户自定义函数等,由于这些类库在各个模块都会被用到,所以放置到独立的目录中,方便管理和重用。
modules目录[ ]
相等于普通SpeedPHP应用程序的controller(控制器)目录,但是由于各个入口文件均有不同不配置,所以modules目录下还将分成与各入口文件名称相同的目录,分别存放各模块的控制器文件。
template目录[ ]
放置html模板文件,template目录下可以按各模块的不同,分成不同的子目录来存放各模块的HTML模板文件。
这些模板当中,类似头部文件(header.html),底部文件(footer.html)等可以通用的模板文件,可以直接放在template目录目录下,让各HTML模板可以简单地引用。
请注意,在各个控制器中输出HTML模板的时候,要加上模板目录的名称:
function index(){ // 这里是首页 $this->contents = "产品模块首页内容"; $this->display("produce/main_index.html"); }
themes目录[ ]
放置图片、样式、JS脚本文件(统称媒体文件),这些文件可以根据使用的范围不同,而再进行分子目录,比如前台的媒体文件放到 template / index目录中,后台的媒体文件放置到 template / admin 目录中。
当然,这些媒体文件,也可以用其他方式存放,比如统一放到根目录的images下面,再在images下分开子目录。
无论如何放置,媒体文件放置的要点就是:将媒体文件与PHP、HTML模板都要分开,使得媒体文件可以独立管理,独立使用。
tmp目录[ ]
临时文件目录
uploads目录[ ]
放置上传的文件的目录,对该目录的建议有:
- 上传文件最好按“年-月”作为目录形式来放置,如果每日上传量比较大,可以用“年-月-日”的目录形式来放置,最终要保证同一目录下文件不能太多,建议值是不要超过1024个文件。
- 可上传文件要进行限制,建议仅能上传图片,压缩包等,以保证系统安全。
参考来源[ ]
http://speedphp.com/manual.html
SpeedPHP使用手册导航 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|