【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


相关文章
|
17小时前
|
JSON PHP 数据格式
【ThinkPHP框架教程·Part-05】控制器定义和渲染输出
本章节介绍控制器的定义方式及其URL访问和渲染输出。控制器文件存放在`controller`目录下,可通过配置`route.php`更改默认路径。类名采用驼峰命名法并与文件名一致,如`Test.php`位于`app\controller\Test.php`。支持设置控制器后缀(如`Controller`)以避免重名冲突。渲染输出方面,ThinkPHP支持通过`return`直接输出字符串或使用`json()`函数返回JSON格式数据。调试时推荐使用助手函数`halt()`,而非`die`或`exit`。
【ThinkPHP框架教程·Part-05】控制器定义和渲染输出
|
17小时前
|
安全 PHP Apache
【ThinkPHP框架教程·Part-02】开发规范和目录结构
本章节介绍ThinkPHP6.0的编码开发规范及目录结构。开发规范遵循PSR-2和PSR-4标准,涵盖命名、文件结构等;目录结构支持单应用和多应用模式,默认仅public目录对外访问,确保安全性。单应用模式下,app目录包含控制器、模型等核心组件;多应用模式允许多个app_name共存,适应复杂项目需求。配置文件与运行时文件分离,确保高效与安全。
【ThinkPHP框架教程·Part-02】开发规范和目录结构
|
缓存
webpack优化篇(四十六):充分利用缓存提升二次构建速度
webpack优化篇(四十六):充分利用缓存提升二次构建速度
452 0
webpack优化篇(四十六):充分利用缓存提升二次构建速度
蓝桥杯之单片机学习(十三)——IO扩展技术与存储器映射扩展
蓝桥杯之单片机学习(十三)——IO扩展技术与存储器映射扩展
302 0
蓝桥杯之单片机学习(十三)——IO扩展技术与存储器映射扩展
|
C语言 Perl
西门子S7-200 SMART位逻辑指令概述及应用举例
本篇文章我来带领大家学习西门子S7-200 SMART的位逻辑指令。位逻辑指令是PLC编程中最基本、使用最频繁的指令,按不同的功能和用途具有不同的形式,总的来说可以分为下述几大类:标准位逻辑指令、置位/复位指令、立即位逻辑指令、其他位逻辑指令。
西门子S7-200 SMART位逻辑指令概述及应用举例
|
缓存 前端开发 JavaScript
爆肝总结万字长文笔记webpack5打包资源优化
webpack是如何打包资源优化,你有了解吗?或者一个经常被问的面试题,首屏加载如何优化,其实无非就是从http请求、文件资源、图片加载、路由懒加载、预请求,缓存这些方向来优化,通常在使用脚手架中,成熟的脚手架已经给你做了最大的优化,比如压缩资源,代码的tree shaking等。
614 0
爆肝总结万字长文笔记webpack5打包资源优化
|
缓存 NoSQL Redis
参照有赞TMC框架原理简单实现多级缓存
项目场景: 有位同事因为缓存被后台删除,导致一堆高并发请求直接怼到DB上,导致数据库cpu 100%
474 0
参照有赞TMC框架原理简单实现多级缓存
|
移动开发 前端开发 JavaScript
自己平时会使用的一个自定义前端结构
这个结构我是根据一些前端技术整合到一起,方便我平时测试一些看到的前端技术,例如CSS、JS等,将理论上升到验证的阶段。
自己平时会使用的一个自定义前端结构
|
Web App开发 缓存 前端开发
高性能 MobX 模式(part 3)- 用例教程
前面两部分把重点放在了 MobX 基础模块的构建上。用这些模块我们可以开始解决一些现实场景的问题了。这篇文章将会通过一系列的示例来应用我们已经了解的概念。
190 0
|
缓存 资源调度 JavaScript
万字长文解密webpack-基本使用/高级用法/性能优化 你想要的全都有!!!
万字长文解密webpack-基本使用/高级用法/性能优化 你想要的全都有!!!