- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五单元 Thinkphp框架的实现原理(一);学习目标;目录; 按照ThinkPHP的架构设计,所有的URL请求(无论是否采用了路由),最终都会定位到控制器(也许实际的类不一定是控制器类,但也属于广义范畴的控制器)。控制器的层可能有很多,为了便于区分就把通过URL访问的控制器称之为访问控制器(通常意义上我们所说的控制器就是指访问控制器)。
ThinkPHPV5.1 的控制器定义比较灵活,可以无需继承任何的基础类,也可以继承官方封装的\think\Controller 类或者其他的控制器类,或者根据业务需求封装自己的基础控制器类。;1.一个典型的控制器类定义如下
<?php
Namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
return 'index';
}
}
控制器类文件的实际位置是
application\index\controller\Index.php
注意:
控制器文件名首字母必须大写,驼峰命名
控制器名和文件名一一对应
命名空间必须和文件路径对应
如果控制器名字采用驼峰命名,如UserInfo,访问时用user_info(或者
//是否自动转换URL中的控制器和操作 'url_convert'=> false,)
;控制器一般不需要任何输出,直接return即可。不建议echo方式。
下面都是有效的输出方式:
<?php
namespace app\index\controller;
class Index
{
public function hello()
{
return 'hello,world!';
}
public function json()
{
return json($data);
}
public function read()
{
// 渲染默认模板输出
return view();
}
}
;系统默认的配置响应格式为html,如果操作直接返回数组,那么系统会报错,此时需要定义:
//默认输出类型
'default_return_type'=> 'json',
;如果你的控制器类继承了系统控制器基类(\think\Controller )的话,可以定义控制器初始化方法initialize ,该方法会在调用控制器的方法之前首先执行,如非必要,不建议直接修改控制器的架构函数。initialize 方法不需要任何返回值
如果访问:
http://localhost/index.php/index/Index/hello
输出:
init
hello;可以为某个或者某些操作指定前置执行的操作方法,设置beforeActionList 属性可以指定某个方法为其他方法的??置操作,数组键名为需要调用的前置方法名,无值的话为当前控制器下所有方法的前置方法。
['except'=>'方法名,方法名']
表示这些方法不使用前置方法,
['only' => '方法名,方法名']
表示只有这些方法使用前置方法。
public $beforeActionList =[ ‘方法名(所有操作都会执行本方法)',
‘方法名(数组内的操作不执行本方法)'=>['except'=>‘action1,action2'],
‘方法名(数组内的操作才执行本方法)'=>['only'=>' action1,action2 ']
];
程序实例见参考手册
];;1.使用系统函数view
namespace app\index\controller;
class Index
{
public function index()
{
return view('index');
}
}
2. 使用系统View类
namespace app\index\controller;
use think\View;
class Index
{
public function index()
{
$view = new View();
return $view->fetch('index');
}
}
; 在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。 系统的 \think\Controller 类内置了两个跳转方法 success 和 error ,用于页面跳转提示。
跳转地址是可选的:
您可能关注的文档
- 数字电路不挂科-4-触发器.pdf
- 数字电路不挂科-5-门电路与存储器.pdf
- 数字电路不挂科-6-组合逻辑电路[1].pdf
- 数字电路不挂科-7-组合逻辑电路[2].pdf
- 数字电路不挂科-8-矩形脉冲、数模转换和模数转换.pdf
- 数字电路不挂科-1-数制与码制.pdf
- 数字电路不挂科-2-逻辑代数基础.pdf
- 数字电路不挂科-3-组合逻辑电路.pdf
- 实验二 系统建模--交互图与行为图.docx
- 实验一 系统建模--用例图与类图.docx
- 医院后勤个人年度工作总结(32篇).docx
- 全球及中国呼吸感应器行业市场发展分析及前景趋势与投资发展研究报告2024-2029版.docx
- 全球及中国塑料食品储存容器行业市场发展分析及前景趋势与投资发展研究报告2024-2029版.docx
- 全球及中国开式模锻套筒行业市场发展分析及前景趋势与投资发展研究报告2024-2029版.docx
- 全球及中国微控制单元(MCU)行业市场发展分析及前景趋势与投资发展研究报告2024-2029版.docx
- 中国粉末非标设备行业市场现状分析及竞争格局与投资发展研究报告2024-2029版.docx
- 中国核酸提纯分析仪行业市场现状分析及竞争格局与投资发展研究报告2024-2029版.docx
- 季度工作总结报告汇编七篇.docx
- 中国涂布黄芯白卡行业市场现状分析及竞争格局与投资发展研究报告2024-2029版.docx
- 2024年财务部半年工作总结优质6篇.docx
文档评论(0)