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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容

  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 942评论 0 0
  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 4,338评论 0 12
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 2,583评论 0 7
  • 5个属性 1.试图类实例对象:protected $view;2.请求类实例对象:protected $reque...
    PlusNie阅读 1,323评论 2 5
  • 存储服务器服务端 第一步:在存储服务器服务端 存储服务器客户端 第二步:nfs客户端(也就是web服务器)修改ng...
    古巷挂青灯阅读 782评论 0 0