批改状态:合格
老师批语:
ThinkPHP5.1之控制器
控制器其实就是一个类,用来接受用户的请求并将处理结果返回给调用者(客户端),控制器是一个核心,框架的所有请求操作都由控制器控制,就像一部电脑的CPU
控制器中渲染输出问题,全部采用return 返回,return 默认仅返回字符串类型的数据
// 默认输出类型 可选json 'default_return_type' => 'html',
控制器默认命名空间与修改方法
1. 命名空间: app\模块名\controller;
2. app: 系统中默认的针对应用的根命名空间,可以在.env中进行设置
3. APP_NAMESPACE = application
4. .env文件必须放在应用根目录下(与应用目录同级)
5. controller: 并不是控制器目录名称,本质上是:可访问控制器
实例:将系统可访问控制器设置为api
(1)修改config/app.php:
// 默认的访问控制器层
'url_controller_layer' => 'api',
(2)在index模块中创建api目录,创建Index控制器类和index()方法
<?php
namespace app\index\api;
class Index
{
public function index()
{
return '<h3>我是api访问控制器中的Index控制器中的test()';
}
}
(3)访问: tp51.io/index.php/index/index/index,将会自动访问我们自定义的控制器层除了默认控制器层可重定义外,默认控制器与默认方法与可以重定义
实例:(1)修改app.php中的配置项
// 默认控制器名
'default_controller' => 'User',
// 默认操作名
'default_action' => 'list',
(2)在api/创建User.php
<?php
namespace app\index\api;
class User
{
public function list()
{
return '<h2>我是api控制器层中的User控制器中的list()操作';
}
}ThinkPHP5.1之请求对象
请求对象就是一个URL地址,也叫URL请求,就是用户通过输入来获取和设置这些URL中的参数
参数绑定 : 参数指的是URL地址中的参数,特指是path_info方式获取
1. 参数绑定的规则在app.php中设置
// URL参数方式 0 按名称成对解析 1 按顺序解析 'url_param_type'=> 0,
2.按名称绑定: 默认方式,必须写出变量名称,以名值对方式出现,与参数顺序无关
//按名称成对解析
'url_param_type'=> 0,
public function study($site,$course)
{
return '<h2>我在'.$site.'学习'.$course.'课程';
}
显示效果: 我在php中文网学习thinkphp5.1课程3.按顺序绑定: 不必给出参数名称,只需要给出参数值即可,虽然url地址更短,但参数顺序绝对不能颠倒
按顺序解析
'url_param_type'=> 1,
public function study($site,$course)
{
return '<h2>我在'.$site.'学习'.$course.'课程';
}
显示效果: 我在www.php.cn学习PHP课程依赖注入:将当前类依赖的对象,以参数的方式注入到当前类中,简称依赖注入
<?php
class Mi
{
public function size()
{
return '5.99寸全面屏';
}
public function feature()
{
return '屏下指纹解锁';
}
}1. 构造方法实现依赖注入
class Mi7
{
private $Mi = null;
public function __construct(Mi $mi)
{
$this->mi = $mi;
}
public function getInfo()
{
return '小米8:'.$this->mi->size();
}
}
//将实例化外部对象的语句放在了类的外部
$mi = new Mi;
$Mi7 = new Mi7($mi);
echo $Mi7->getInfo();
echo '<hr>';2.用普通方式实现依赖注入
class Mi8
{
public function buy(Mi $mi)
{
return '小米8:'.'特色功能:'.$mi->feature();
}
}
$mi = new Mi;
$mi8 = new Mi8();
echo $mi8->buy($mi);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号