请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 4722|回复: 0

[API参考] spController

[复制链接]
发表于 2012-8-6 20:46:06 | 显示全部楼层 |阅读模式
控制器类
基础控制器程序父类,应用程序中的每个控制器程序都应继承于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(),才可以保证视图类的有效性。

  1. class mycontroller extends spController{
  2.         function __construct(){
  3.                 // 一些操作

  4.                 parent::__construct();
  5.         }
  6. }
复制代码
jump

用户级默认跳转程序

void jump(url url, int delay)

参数:

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

  4.                 $this->jump(spUrl("main","index"),3); // 3秒后返回首页
  5.         }
  6. }
复制代码
error

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

void error(string msg, url url)

参数:

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

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

  1. class mycontroller extends spController{
  2.         function myaction(){
  3.                 // 一些操作

  4.                 $this->error("登录出错,请重新登录。。。",spUrl("user","login"));
  5.         }
  6. }
复制代码
success

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

void success(string msg, url url)

参数:

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

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

  1. class mycontroller extends spController{
  2.         function myaction(){
  3.                 // 一些操作

  4.                 $this->success("登录成功",spUrl("admin","index"));
  5.         }
  6. }
复制代码
__set

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

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

  1. class mycontroller extends spController{
  2.         function myaction(){
  3.                 // 一些操作

  4.                 $this->result = "这里是结果"; // 将值传送到模板的变量$result中。
  5.         }
  6. }
复制代码
display

输出模板

mixed display(file_name tplname, bool output)

参数:

  • file_name tplname 模板路径及名称
  • bool output 是否直接显示模板,设置成FALSE将返回HTML而不输出

返回:

如output为TRUE,display()将是直接显示模板处理后的页面。

如output为FALSE,display()将返回页面的HTML代码,而不会显示页面内容。

  1. $this->display("html/mytpl.html");
  2. // 等同于
  3. echo $this->display("html/mytpl.html", FALSE);
复制代码
__call

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

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

getView

获取视图对象

object & getView(void)

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

返回:

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

  1. class mycontroller extends spController{
  2.         function myaction(){
  3.                 // 一些操作

  4.                 $smarty_object = $this->getView();
  5.                 dump($smarty_object);
  6.         }
  7. }
复制代码
setLang

设置当前用户的语言

bool setLang( language lang )

参数:

  • language lang 语言标识

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


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

  4.                 $this->setLand("en"); // 将当前用户设置成英文
  5.         }
  6. }
复制代码
getLang

获取当前用户的语言

language lang getLang(void)

返回

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

  1. class mycontroller extends spController{
  2.         function myaction(){
  3.                 // 一些操作

  4.                 dump($this->getLand());
  5.         }
  6. }
复制代码
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-2-19 19:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表