TP5控制器的进阶高级知识笔记.md

1、怎么自定义访问控制器层?

在自定义配置文件config/config.php中添加:

// 默认的访问控制器层
​'url_controller_layer'   => 'controller',

可以将'controller'改为任意自定义名,如'api'。
这时也要把app\index\下的controller文件夹名改为api,api下的所有控制器的命名空间也要更改。

2、怎么创建多级控制器?

在app\index\controller文件夹下添加文件夹如'user',在user中添加Demo.php文件。
那么要在url中访问其中的index方法就要输入:

tp5.com/index/user.demo/index

3、为什么要创建空操作和空控制器?

如果在url中访问了一个不存在的方法,为了不报错,而显示自定义的提示,就要在控制器中写一个如下的方法:

public function _empty($method)
{
  return '你访问的方法'.$method.'不存在';
}

如果在url中访问了一个不存在的控制器,为了不报错,而显示自定义的提示,就要在thinkphp\convention.php中找到’empty_controller' => 'Error',将其复制到自定义config.php中,'Error'可自己改。
然后在app\index\controller文件夹下新建一个Error.php文件,最好在其中同样填入如下代码:

public function _empty($method)
{
  return '你访问的方法'.$method.'不存在';
}

4、怎么在控制器中使用trait?

例如在class Index类中开头写:

use \traits\controller\Jump;

就引入了traits中Jump控制器,该控制器中有个success方法,我们现在想用这个方法,所以:

public function demo($name)
{
  if ($name=='bilibili'){
    $this->success('正在跳转到哔哩哔哩动画','http://www.bilibili.com');
  }
}

在url中就可以写:

tp5.com/index/index/demo/name/bilibili

就可以访问了。

5、什么是单一模块?什么时候需要使用它?

如果应用比较简单,不需要划分模块的时候,就可以使用单一模块。
单一模块,就是没有模块,模块就是应用,应用就是模块。
开启单一模块:
在\thinkphp\convention中找到'app_multi_module' => true,复制到自己的config.php中,修改true为false,即可。
然后把index模块下的东西全部移到application下。其他相应的如命名空间也要更改。

你可能感兴趣的:(TP5控制器的进阶高级知识笔记.md)