everforge / think-constant
Support Constant with Exception handle
v1.0.7
2024-05-20 06:26 UTC
Requires
- php: ^7.2
- ext-reflection: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- pestphp/pest: ^1.23
- topthink/framework: >=v6.0.0
- topthink/think-cache: ^2.0
README
EverForge ThinkConstant 是一个 PHP 库,它提供了一种方便的方式来处理常量和异常。
安装
使用 Composer 安装:
composer require everforge/think-constant
使用
首先,创建一个常量类,继承 EverForge\ThinkConstant\Constant
类,然后定义常量:
php think make:constant MyConstant
<?php namespace App; use EverForge\ThinkConstant\Constant; class MyConstant extends Constant { /** * @Message("系统错误") */ public const SERVER_ERROR = 500; }
然后,创建一个继承自 EverForge\ThinkConstant\Exceptions\ConstantException
的异常类:
php think make:exception MyException
<?php namespace App\Exceptions; use EverForge\ThinkConstant\Exceptions\ConstantException; class MyException extends ConstantException { protected const HANDLED_CONSTANT_FQCN = MyConstant::class; }
现在,你可以抛出 MyException
异常,并使用 MyConstant::SERVER_ERROR
作为错误代码:
throw new MyException(MyConstant::SERVER_ERROR);
MyException
类会自动从 MyConstant
类中获取错误信息,并将其用作异常消息。
捕获异常
你可以使用 try-catch
语句捕获异常:
try { throw new MyException(MyConstant::SERVER_ERROR); } catch (MyException $e) { echo $e->getMessage(); // 输出 "失败" }
在 thinkphp 中使用
// 使用全局错误捕获并处理异常 /** * @see https://www.kancloud.cn/manual/thinkphp6_0/1037615 */ if ($e insteadof \EverForge\ThinkConstant\Exceptions\ConstantException::class) { [$code,$message] = [$e->getCode(),$e->getMessage()]; }
License
MIT