【ThinkPHP框架教程·Part-06】基础、空、多级控制器

简介: 本文介绍了ThinkPHP框架中三种控制器的使用方法:基础控制器、空控制器和多级控制器。基础控制器提供了验证功能并注入了`think\App`和`think\Request`对象,推荐继承以获得更多方法。空控制器用于单应用模式下的错误提醒,定义一个Error类即可实现。多级控制器则通过在controller目录下创建子目录来实现分组管理,例如建立group目录并在其中创建Blog.php控制器,访问路径为`http://localhost:8000/group.blog`及其方法。

本章节我们来了解一下用于继承的基础控制器、空控制器和多级控制器的使用方法。

一、基础控制器

一般来说,创建控制器后,推荐继承基础控制器来获得更多的方法。

基础控制器仅仅提供了控制器验证功能,并注入了think\Appthink\Request

这两个对象后面会有章节详细讲解,下面我们继承并简单使用一下。

<?php
namespace app\controller;
use app\BaseController;
class Test extends BaseController
{
    public function index()
    {
        return '当前方法名:'.$this->request->action().',基础控制器的实际路径:'.$this->app->getBasePath();
    }
}


二、空控制器

在单应用模式下,我们可以给项目定义一个 Error 控制器类,来提醒错误;

<?php
namespace app\controller;
class Error
{
    public function index()
    {
        return '当前控制器不存在!';
    }
}


三、多级控制器

所谓多级控制器,就是在控制器 controller 目录下再建立目录并创建控制器,相当于控制器下的分组。

我们在 controller 目录下建立 group 目录,并创建 Blog.php 控制器。

而此时,我们需要访问的地址为:http://localhost:8000/group.blog

访问read方法:http://localhost:8000/group.blog/read


目录
打赏
0
2
2
0
64
分享
相关文章
【ThinkPHP框架教程·Part-05】控制器定义和渲染输出
本章节介绍控制器的定义方式及其URL访问和渲染输出。控制器文件存放在`controller`目录下,可通过配置`route.php`更改默认路径。类名采用驼峰命名法并与文件名一致,如`Test.php`位于`app\controller\Test.php`。支持设置控制器后缀(如`Controller`)以避免重名冲突。渲染输出方面,ThinkPHP支持通过`return`直接输出字符串或使用`json()`函数返回JSON格式数据。调试时推荐使用助手函数`halt()`,而非`die`或`exit`。
【ThinkPHP框架教程·Part-05】控制器定义和渲染输出
【ThinkPHP框架教程·Part-02】开发规范和目录结构
本章节介绍ThinkPHP6.0的编码开发规范及目录结构。开发规范遵循PSR-2和PSR-4标准,涵盖命名、文件结构等;目录结构支持单应用和多应用模式,默认仅public目录对外访问,确保安全性。单应用模式下,app目录包含控制器、模型等核心组件;多应用模式允许多个app_name共存,适应复杂项目需求。配置文件与运行时文件分离,确保高效与安全。
【ThinkPHP框架教程·Part-02】开发规范和目录结构
必知的技术知识:ECSHOP增加独立评论页面,并分页显示
必知的技术知识:ECSHOP增加独立评论页面,并分页显示
55 1
如何将你的 WordPress 网站置于维护模式
如何将你的 WordPress 网站置于维护模式
148 0
webpack优化篇(四十三):多进程/多实例构建:资源并行解析可选方案
webpack优化篇(四十三):多进程/多实例构建:资源并行解析可选方案
177 0
webpack优化篇(四十三):多进程/多实例构建:资源并行解析可选方案
通过 express 模拟 Apache 实现静态资源托管服务(补充)|学习笔记
快速学习通过 express 模拟 Apache 实现静态资源托管服务(补充)
高性能 MobX 模式(part 3)- 用例教程
前面两部分把重点放在了 MobX 基础模块的构建上。用这些模块我们可以开始解决一些现实场景的问题了。这篇文章将会通过一系列的示例来应用我们已经了解的概念。
234 0