#1 kanchaoyang
有几个问题,一直迷惑着,说明如下:
第一个问题:
$id=$GET[id];class file extends spController
{
function index()
{
$abc=$id; }
function filewrite()
{
$edf=$id; }
function file_v()
{
$hij=$sid; }
}
?>
上面的例子中,显然$abc,$edf,$hij 并不能取得$id的值,那么变量$id 如何处理,才能应用与本控制器的所有动作呢?我通常用 $_SESSION处理,使这个变量全局有效,总感觉不对,大家帮帮忙,曾经试过gobal 好像也不起作用!
第二个问题:
我的目录结构如下:
根目录下有如下的文件夹:admin controller model speedphp tmp tpl
在admin(后台管理)目录文件夹里有:controller model tmp tpl
这两个公用一个speedphp
我的问题是,如果是这两个目录共用一个model?,还是必须要分开,各用各的model呢?
第三个问题:
情况如同问题二,在admin 内的模板中,
调用的是 admin/目录下的controller/内的main控制器的index动作,那么怎么样调用根目录下的controller//内的控制器main的index动作呢?
感谢各位!
2010-06-06 07:15:23
#2 jake
一、全局变量Global的用法可以参考PHP手册
http://speedphp.com/doc/php/i/language.variables.scope.html如果你希望能在整个控制器内使用,可以是在构造函数内定义。
class file extends spController
{
function __construct(){
$this->id = $_GET['id'];
}
function index()
{ echo $this->id; }
}
?>
另外提一些建议,希望楼主不要见怪:楼主的代码写得很不好(如果上面的代码是真的话),关键字Global,$_GET都错了,还有类似file之类的近似于关键字的词语,一般不会用来做类名函数名或变量名的。其他的变量定义也是abcd的。建议楼主要多看看别的开源PHP系统的源代码,比较出名的那些类似discuz之类的。
二、两套应用程序(根目录和admin目录)可以共用一套model,当然前提是这一套model两个应用程序都能用。配置一下其中一个应用程序的
'model_path' => APP_PATH.'/model', // 用户模型程序的路径定义
为另外一个应用程序的model地址即可。
三、只能直接写地址,spUrl生成的“同一应用程序”的URL地址,而admin目录是另一个应用程序。比如说你的应用程序和163.com也是两个应用程序,那么你要链接到163.com,也只有直接写
http://163.com。
2010-06-06 10:09:13
#3 kanchaoyang
感谢老大的提醒和建议,又明白了一些,看来路还很长,要学的还很多啊!谢谢!
2010-06-06 17:46:04