tp8 设置空控制器和空方法

1、空控制器

单应用模式下,我们可以给项目定义一个Error控制器类

复制代码
<?php

namespace app\controller;

class Error
{
   /**
     * 空控制器中重写魔术方法__call可以实现自定义错误提示,在这里可以提示找不到控制器
     * 注意:在基础控制器BaseController中,如果找不到方法调用,会自动调用__call方法,可以提示方法不存在
     * @param $method
     * @param $args
     * @return Json
     */
    public function __call($method, $args)
    {
        //获取当前控制器
        $controller = request()->controller();
        return json([
            'code' => 0,
            'msg' => "当前{$controller}控制器不存在",
        ]);
    }
}

注意:如果是多应用模式,就写在模块的控制器里面,我试了也可以,官方文档这里没说多模式的

2、空方法

(1)当前类继承自BaseController

加到BaseController里

(2)当前类继承自某个公共的类

加到公共类里

(3)当前类没有继承自任何类

加到该控制器类里

复制代码
 /**
     * 重写魔术方法__call()
     * @param String $method  接收不存在的方法名
     * @param array $arguments 接收不存在的方法参数
     * @return Json
     */
    public function __call(string $method, array $arguments){
        // 处理未定义或不可访问的方法调用
        // 这里可以根据实际需求编写逻辑
        // 例如,可以返回一个JSON响应或抛出异常
        $result = [
            'code' => 0,
            'msg' =>"方法{$method}()不存在或不可访问",
        ];
        //逻辑:如果我们的模块是api模块,需要输出api的数据格式
        return json($result, 400);
    }
相关推荐
BingoGo9 小时前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack9 小时前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982071 天前
PHP 扩展——从入门到理解
php
鹏仔先生2 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下2 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip2 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒2 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog2502 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
Channing Lewis2 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
Cheng小攸2 天前
渗透行为分析与检测
开发语言·php