#1 kernel
/index.php -> include '/app/index.php';
/app/ 内含 model controler等 外加 /app/index.php 内容是 include /speedphp/ ... sprun()
/speedphp/
2011-03-27 16:10:39
#2 jake
如上面所述,错误提示是什么呢?
另,sp可以支持很复杂的目录结构,当然,那需要在入口文件进行配置,具体可以参考sp配置文档
http://speedphp.com/manual/spconfig
2011-03-27 16:44:07
#3 kernel
知道问题了,如果/app/index.php被一个函数或者类包含 会有问题
问题在于:
function loadSpeedPHP(){
global $spConfig;
$spConfig = array();
require(SP_PATH."/SpeedPHP.php");
spRun();
}
文件里:
// 构造执行路由
$__controller = isset($_REQUEST[$GLOBALS['G_SP']["url_controller"]]) ?
$_REQUEST[$GLOBALS['G_SP']["url_controller"]] :
$GLOBALS['G_SP']["default_controller"];
$__action = isset($_REQUEST[$GLOBALS['G_SP']["url_action"]]) ?
$_REQUEST[$GLOBALS['G_SP']["url_action"]] :
$GLOBALS['G_SP']["default_action"];
$__controller,$__action
被声明为局部变量,应该改为
$GLOBALS['__controller'] = isset($_REQUEST[$GLOBALS['G_SP ...
2011-03-27 16:47:29
#4 kernel
/**
* spRun 执行用户代码
*/
function spRun(){
GLOBAL $__controller, $__action;
// 对路由进行自动执行相关操作
这样这个函数才能获取得到变量
2011-03-27 16:51:01
#5 jake
无语。。。入口文件还拿来包含。。。入口文件的定义是直接被访问的文件。
建议让入口文件直接被访问。
2011-03-27 16:53:47
#6 kernel
项目是多种多样的 复杂一点的部署不能由一个子应用独占入口 框架应该自我封装吧 不要太依赖全局变量
2011-03-27 16:58:52
#7 jake
项目是多种多样的 复杂一点的部署不能由一个子应用独占入口 框架应该自我封装吧 不要太依赖全局变量 ...
kernel 发表于 2011-3-27 16:58 
多入口是可以的,只是建议入口文件的作用仅作为入口文件,没必要把入口文件包含入口文件。
这里是大规模多入口部署的方法:
http://speedphp.com/post/release-dirs.html另外,刚才说的并非是“全局变量”,而是配置路径,因为框架格局要改变的话,那么路径必须重新配置,这不是封装能解决的。
2011-03-27 17:03:46