TP5框架的控制器与请求对象

1.控制器类源码解读[Config.php]:5个属性8个方法

5个属性:


image.png

8个方法:


image.png

2.控制器入门

1.什么是控制器?什么是可访问的控制器?
控制器就是mvc中的controller,读取视图view,操作数据模型。
可以通过URL地址访问的,是可访问控制器。
2.什么是操作?什么是可访问操作?
外部可访问的操作,通过访问限制符控制(public),操作就是控制器中的方法。
3.什么是命名空间?它与控制器或方法后缀的关系?
命名空间可以保证类和第三方类名不冲突。相同类名只要处于不同命名空间就没有影响。
给控制器或方法添加后缀,访问时会自动识别
4.控制器的命名规范是什么?如何正确访问控制器?
驼峰命名,首字母大写
如果控制器名字超过两个单词,在URL访问时,要在单词之间加下划线

3.控制器进阶

1.为什么自定义访问控制器层?
可以规范项目
2.为什么创建多级控制器?
当一个模块下控制器非常多的时候,可以分级管理
3.为什么创建空操作和空控制器?
作用是对不存在的URL访问进行拦截
在控制器中创建一个空操作,当访问的方法不存在的时候,会调用这个方法


image.png

根据系统默认的空控制器名创建一个空控制器,放访问的控制器不存在时会调用。
4.在控制器中使用trait类库有什么好处?
可以突破单继承的限制
当没有集成类,想使用trait中的的类时,可以使用use引入相应的trait类库


image.png

5.什么是单一模块?什么时候需要使用它?
应用很简单时使用单一模块,此时,应用就是模块,模块就是应用

4.如何创建公共控制器与公共操作:继承与共享

1.公共操作有什么用?如何创建一个公共操作?
公共操作:某个操作的返回值会影响到所有操作,或它创建的数据可以被所有操作所共享
2.公共控制器类有什么用?如何创建公共控制器?
如果有多个控制器要共享数据。
创建一个公共器类,让这个类继承自基类Controller,再把一些公共操作写到公共类中。以后写的控制器再继承这个公共类就可以了

5.前置操作

1.什么是前置操作?
某个操作执行之前先执行的操作,类似构造方法。特殊是,可以制定为所有方法的前置操作或特定方法的前置操作
2.为什么必须继承基类Controller,才能创建前置操作?
Controller类中有一个属性,前置操作方法列表,只能在本类和子类中调用
3.前置操作有什么作用?如何正确的使用它?


image.png

6.页面跳转与重定向

6.1页面跳转

页面跳转的目标有哪些


image.png

控制器内跳转:


image.png

跨控制器跳转:
image.png

跨模块跳转:


image.png

跳转到外部地址:


image.png
6.2重定向

重定向:根据条件生成一个新的URL,替换掉当前的URL


image.png

示例:


image.png

7.请求对象与参数绑定:按名称和按顺序访问变量

1.请求变量和请求对象之间的关系
请求对象:tp5提供特定的方法,对用户请求进行处理,自动过滤掉非法请求
示例:获取并显示URL请求中的参数


image.png

2.请求信息包括那些?
URL、mca(模块、控制器、操作)、域名、
3.如何通过参数绑定来简化URL
按照顺序在url中填入参数值,不用再输变量名。
需要在配置项中配置:


image.png

8.请求对象的属性注入与方法注入:数据跨控制器和模块共享

Request::instance();可以获取请求的实例


image.png
image.png

9.请求对象的依赖注入:

通过操作参数的类型约束来创建请求对象
1.依赖注入:改变了使用对象前,必须先创建对象的传统方式,而是从外部注入所依赖的对象
2.ThinkPHP5依赖注入主要是指把对象注入到可访问控制器
3.注入方法:控制器的构造方法和操作方法
4.实现方式:对参数进行对象类型约束则会自动触发依赖注入,自动实例化该对象

image.png

你可能感兴趣的:(TP5框架的控制器与请求对象)