一些使用SP的开发心得(慢慢积累)

#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

#3 oklrc

非常棒,对所有人来讲这个都非常受用。

2010-06-01 15:19:39