#1 jake

控制器类
基础控制器程序父类,应用程序中的每个控制器程序都应继承于spController。

成员变量

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{
        function __construct(){
                // 一些操作

                parent::__construct();
        }
}
jump

用户级默认跳转程序

void jump(url url, int delay)

参数:


  • url url 需要前往的地址
  • int delay 延迟时间
jump()与error()、success()一样,都是框架控制器类默认的用户级方法函数,建议开发者在实际开发中可以覆盖这些方法,以便提供更好的跳转提示信息。
在控制器类内可以使用以下代码进行网址跳转操作:
class mycontroller extends spController{
        function myaction(){
                // 一些操作

                $this->jump(spUrl("main","index"),3); // 3秒后返回首页
        }
}
error

用户级默认错误提示程序,应用程序的控制器类可以覆盖该函数以使用自定义的错误提示。

void error(string msg, url url)

参数:


  • string msg 提示的信息
  • url url 需要前往的地址

在控制器类内可以使用以下代码进行错误信息提示及跳转:

class mycontroller extends spController{
        function myaction(){
                // 一些操作

                $this->error("登录出错,请重新登录。。。",spUrl("user","login"));
        }
}
success

用户级默认成功提示程序,应用程序的控制器类可以覆盖该函数以使用自定义的成功提示。

void success(string msg, url url)

参数:


  • string msg 提示的信息
  • url url 需要前往的地址

在控制器类内可以使用以下代码进行成功信息提示及跳转:

class mycontroller extends spController{
        function myaction(){
                // 一些操作

                $this->success("登录成功",spUrl("admin","index"));
        }
}
__set

魔术函数,获取赋值作为模板内变量

__set()让开发者可以在控制器类中执行以下操作:

class mycontroller extends spController{
        function myaction(){
                // 一些操作

                $this->result = "这里是结果"; // 将值传送到模板的变量$result中。
        }
}
display

输出模板

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");
// 等同于
echo $this->display("html/mytpl.html", FALSE);
__call

魔术函数,实现对控制器扩展类的自动加载

__call()可以让spController类支持更广泛的用途。

getView

获取视图对象

object & getView(void)

调用getView()将获取到视图类的实例。在对视图类进行高级操作时使用。

返回:

返回视图类的实例,默认视图类即是Smarty实例。

class mycontroller extends spController{
        function myaction(){
                // 一些操作

                $smarty_object = $this->getView();
                dump($smarty_object);
        }
}
setLang

设置当前用户的语言

bool setLang( language lang )

参数:


  • language lang 语言标识

在框架的多语言处理中,开发者可通过控制器的setLang()和getLand()函数来设置和获取当前用户的语言设置。

这里的用户指的是当前会话中的访问者,和具体系统中的会员有所区别。
例子:
class mycontroller extends spController{
        function myaction(){
                // 一些操作

                $this->setLand("en"); // 将当前用户设置成英文
        }
}
getLang

获取当前用户的语言

language lang getLang(void)

返回

返回当前会话的用户设置的语言,如未设置则返回FALSH。

class mycontroller extends spController{
        function myaction(){
                // 一些操作

                dump($this->getLand());
        }
}

2012-08-06 20:46:06