文档:控制器
文档:控制器
控制器介绍
控制器中包括变量和方法,变量是 $rules ,指定方法的规则,基本规则有
* 无要求
* ? 必须是游客,
* @ 必须已经登录,
* p 必须POST提交,
* ! 未开放不能访问,
* 其他 要求通过验证权限;
方法,方法名必须加上APP_ACTION定义的后缀(避免与普通方法混淆),
加载数据或插件,
可以通过 use、include、include_once、require、require_once ,
也可通过 $this->loader->model()、$this->loader->library()、$this->loader->plugin() 加载,
然后通过 $this->__() 使用;
通过 $this->show() 指向界面,
如果第一个参数不是 string 则,根据路由解析出来的控制器名和方法名自动加载界面(例如 HomeController::indexAction -> Home/index.php),
如果是指定则可以用户 . 代替 / ,对界面传参数,
可以用 $this->send() 传任意值(如果不是数组则自动加在 data 下)或 $this->show() 第一个参数为数组或第二个参数;
控制器的使用
步骤
第一步
在 Service 文件夹下新建 Home 文件夹,并新建 HomeController.php 文件作为默认控制器
第二步
<?php
namespace Service\Home;
use Zodream\Route\Controller\Controller;
class HomeController extends Controller {
public function indexAction() {
return $this->show();
}
}
解释
- 第一句,声名命名空间;
- 第二句,使用控制器基类;
- 第三句,使本控制器继承至基类;
- 第四句,声名方法,能根据网址使用的必须带Action后缀;
- 第五句,显示视图;
参数说明
$this->show($name, $data);
$name 为空或 null 时,根据路由得到的控制器名和方法名自动生成路径 Home/index.php
为数组时,此时得到的值作为要传递的参数,路径同上;
为匿名方法,直接执行,当有返回值则输出匿名函数的返回值;
为 @ 开头的字符串,直接输出字符串;
其他则作为路径解析
$data 为空
为字符串是,参数则以 data 命名;
为数组,并入参数