#1 jake
控制器类
成员变量
public
- $v -- 视图对象
成员函数
public
- __construct -- 构造函数
- jump -- 用户级默认跳转程序
- error -- 用户级默认错误提示程序
- success -- 用户级默认成功提示程序
- __set -- 魔术函数,获取赋值作为模板内变量
- display -- 输出模板
- __call -- 魔术函数,实现对控制器扩展类的自动加载
- getView -- 获取视图对象
- setLang -- 设置当前用户的语言
- getLang -- 获取当前用户的语言
位置
spController类位于 SP_PATH/Core/spController.php
函数详细__construct
构造函数
void __construct(void)
spController类的构造函数,进行初始化视图类的操作。
请注意,如spController的子类,即是继承于spController的控制器类中覆盖了构造函数__construct(),开发者需要在子类的构造函数中调用父类的__construct(),才可以保证视图类的有效性。
class mycontroller extends spController{jump
function __construct(){
// 一些操作
parent::__construct();
}
}
用户级默认跳转程序
void jump(url url, int delay)
参数:
- url url 需要前往的地址
- int delay 延迟时间
jump()与error()、success()一样,都是框架控制器类默认的用户级方法函数,建议开发者在实际开发中可以覆盖这些方法,以便提供更好的跳转提示信息。
class mycontroller extends spController{error
function myaction(){
// 一些操作
$this->jump(spUrl("main","index"),3); // 3秒后返回首页
}
}
用户级默认错误提示程序,应用程序的控制器类可以覆盖该函数以使用自定义的错误提示。
void error(string msg, url url)
参数:
- string msg 提示的信息
- url url 需要前往的地址
在控制器类内可以使用以下代码进行错误信息提示及跳转:
class mycontroller extends spController{success
function myaction(){
// 一些操作
$this->error("登录出错,请重新登录。。。",spUrl("user","login"));
}
}
用户级默认成功提示程序,应用程序的控制器类可以覆盖该函数以使用自定义的成功提示。
void success(string msg, url url)
参数:
- string msg 提示的信息
- url url 需要前往的地址
在控制器类内可以使用以下代码进行成功信息提示及跳转:
class mycontroller extends spController{__set
function myaction(){
// 一些操作
$this->success("登录成功",spUrl("admin","index"));
}
}
魔术函数,获取赋值作为模板内变量
__set()让开发者可以在控制器类中执行以下操作:
class mycontroller extends spController{display
function myaction(){
// 一些操作
$this->result = "这里是结果"; // 将值传送到模板的变量$result中。
}
}
输出模板
mixed display(file_name tplname, bool output)
参数:
- file_name tplname 模板路径及名称
- bool output 是否直接显示模板,设置成FALSE将返回HTML而不输出
返回:
如output为TRUE,display()将是直接显示模板处理后的页面。
如output为FALSE,display()将返回页面的HTML代码,而不会显示页面内容。
$this->display("html/mytpl.html");__call
// 等同于
echo $this->display("html/mytpl.html", FALSE);
魔术函数,实现对控制器扩展类的自动加载
__call()可以让spController类支持更广泛的用途。
getView获取视图对象
object & getView(void)
调用getView()将获取到视图类的实例。在对视图类进行高级操作时使用。
返回:
返回视图类的实例,默认视图类即是Smarty实例。
class mycontroller extends spController{setLang
function myaction(){
// 一些操作
$smarty_object = $this->getView();
dump($smarty_object);
}
}
设置当前用户的语言
bool setLang( language lang )
参数:
- language lang 语言标识
在框架的多语言处理中,开发者可通过控制器的setLang()和getLand()函数来设置和获取当前用户的语言设置。
这里的用户指的是当前会话中的访问者,和具体系统中的会员有所区别。
class mycontroller extends spController{getLang
function myaction(){
// 一些操作
$this->setLand("en"); // 将当前用户设置成英文
}
}
获取当前用户的语言
language lang getLang(void)
返回:
返回当前会话的用户设置的语言,如未设置则返回FALSH。
class mycontroller extends spController{
function myaction(){
// 一些操作
dump($this->getLand());
}
}
2012-08-06 20:46:06