#1 redguan
一、文件架构我觉得这个是重中之重。一开始就要规划好。
如果是单应用,这个问题不大,一般习惯是
/ 系统根目录
/app/ 项目根目录
/app/sp/ 框架目录
/app/tmp
/app/tpl
/app/cache
如果多应用
/app1/
/app1/
/app2/
/app3/
/sp/
/tmp/
/tpl/
/cache/
这样有一个好处,就是http 访问,app1.xxx.com 时,根目录停留在 /app1/目录 黑客无法通过WEB脚本BUG攻击。如果再将PHP生成ZEND二进制文件。黑客无法挂马。
开FTP时,帐号绑定到 /tpl/ 给美工更新模版。美工无法去获得PHP文件。
更安全的做法,是将程序目录完成独立出来。做成ZIP文件,每次重启服务器,自动将ZIP文件解压到指定目录。(相当于一键还原)
指定目录的盘是 RAMDISK (内存虚拟成的硬盘)。这样相当于将程序完全加载到内存运行,读硬盘为零。
2010-05-26 11:29:26
#2 redguan
二、文件的位置sp提供的类是基础,一个真正的应用还需要自己编写大量的类。
多应用的情问下(下面都是以多应用讨论为主,单应用就不作讨论了):
1、公共文件放在lib目录。SP会自动搜索得到。例如UC类。用户类。基础设置类,文件上存类,扩展的缓存类。
在控制器目录,直接调用即可,
例如
$user->get_info($uid); 即获得该用户所有信息。(username,password,nickname,groupid,credits等)
$xk->get_settings(); 即可获得设置内容(站点名,站点信息)
$xk->get_ip(); 公共函数,获取IP等。因为每个应用几呼都要使用到的功能。
$xk->get_cookie(); 公共函数,获取COOKIE
如果你的网站有专门的passport 接口,这个不作讨论。
2、单个应用需要的类,放在model 目录。
例如
论坛应用 app1/model/bbs.php
$bbs->get_info($uid); 论坛会员的信息(posts 发贴数 ,level 论坛等级)
$bbs->get_group($uid); 论坛当前会员所在组的所有权限。(非ALC)
问问(百度知道,腾讯问问) app2/model/ww.php
$ww->get_info($uid); 问问会员的信息(pbs 问题数 ,ans 回复数,level 问问等级)
文章中心(CMS) app3/model/article.php
$article->get_info($uid); //文章中心会员信息 (posts 文章数等)
2010-05-26 11:50:30