文档:控制器

文档:控制器

控制器介绍

控制器中包括变量和方法,变量是 $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 命名;
      为数组,并入参数