attributes-php/wp-exceptions 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

attributes-php/wp-exceptions

最新稳定版本:v2.0.0

Composer 安装命令:

composer require attributes-php/wp-exceptions

包简介

Stop returning WP_Error. Throw exceptions instead

README 文档

README

Throw exceptions instead of returning WP_Error

GitHub Actions Workflow Status (main) Code Coverage Latest Version Supported WordPress Versions Software License

WP_Error was a cool feature in 2007 but today we should throw exceptions.

Features

  • Handles HttpExceptions like WP_Error's
  • Supports custom handlers for custom exceptions
  • Compatible with other exception handlers (e.g. Whoops)

Requirements

  • PHP 8.1+
  • WordPress 6.x

We aim to support versions that haven't reached their end-of-life.

Installation

composer require attributes-php/wp-exceptions

How it works?

Once the ExceptionHandler is registered, you can start throwing exceptions

use Attributes\Wp\Exceptions\ExceptionHandler;

ExceptionHandler::register();

How HttpExceptions are displayed?

WordPress itself handles how an HttpException is displayed to the user. In a nutshell, those exceptions are converted into a WP_Error which is then handled by WordPress via wp_die function.

This means, that the following types of requests are supported:

  • ✅ Ajax
  • ✅ JSON
  • ✅ JSONP
  • ✅ XMLRPC
  • ✅ XML
  • ✅ All other types e.g. HTML

How to send custom HTTP headers?

throw new HttpException(headers: ['My-Header' => 'Value 123']);

How to add custom handlers?

$exceptionHandler = ExceptionHandler::getOrCreate();
$exceptionHandler->onException(CustomException::class, fn($ex) => echo "A custom exception has been raised");

Ensure to add handlers which supports all types of possible requests e.g. JSON, XML, etc

Sage theme support

If you are using Sage theme, you would need to register or re-register this exception handler after the application is configured. Otherwise, this exception handler might be overrided.

// themes/sage/functions.php

Application::configure()
    ->withProviders([
        App\Providers\ThemeServiceProvider::class,
    ])
    ->boot();

ExceptionHandler::register(force: true); // We are using force true in case the ExceptionHandler has been registered before e.g. in a plugin

WP Exceptions was created by André Gil and is open-sourced software licensed under the MIT license.

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 3

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-15