CakePHP
  • 文档
    • 手册
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识 & 商标
  • 业务解决方案
  • 周边产品
  • 自驾游
  • 团队
  • 社区
    • 社区
    • 参与进来
    • 问题 (Github)
    • 烘焙坊
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 通讯
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • 帮助 & 支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
      • Debug
      • Middleware
      • Renderer
    • Event
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • TestSuite
    • Utility
    • Validation
    • View

类 ExceptionTrap

CakePHP 异常处理的入口点。

使用 register() 方法,你可以将 ExceptionTrap 附加到 PHP 的默认异常处理程序,并注册一个关闭处理程序来处理致命错误。

当异常被捕获时,Exception.beforeRender 事件会被触发。然后,异常会被记录(如果已启用),最后使用定义的渲染器进行“渲染”。

停止 Exception.beforeRender 事件不会有任何影响,因为我们始终需要对异常渲染响应,并且如果你想替换或跳过渲染异常,则应使用自定义渲染器。

如果未定义,异常渲染器将根据当前 SAPI(CLI 或 Web)进行选择。

命名空间: Cake\Error

属性摘要

  • $_config protected
    array<string, mixed>

    运行时配置

  • $_configInitialized protected
    bool

    配置属性是否已使用默认值进行配置

  • $_defaultConfig protected
    array<string, mixed>

    配置选项。通常,这些选项将在你的 config/app.php 中定义。

  • $_eventClass protected
    string

    新事件对象的默认类名。

  • $_eventManager protected
    Cake\Event\EventManagerInterface|null

    Cake\Event\EventManager 的实例,该对象用于分发内部事件。

  • $callbacks protected
    arrayClosure>

    处理回调的列表。

  • $disabled protected
    bool

    跟踪此陷阱是否已从全局处理程序中删除。

  • $registeredTrap protected static
    Cake\Error\ExceptionTrap|null

    当前注册的全局异常处理程序

方法摘要

  • __construct() public

    构造函数

  • _configDelete() protected

    删除单个配置键。

  • _configRead() protected

    读取配置键。

  • _configWrite() protected

    写入配置键。

  • chooseRenderer() protected

    根据配置或 SAPI 选择异常渲染器

  • configShallow() public

    将提供的配置与现有配置合并。与 config() 方法不同,config() 方法对嵌套键进行递归合并,而此方法进行简单合并。

  • dispatchEvent() public

    用于创建和分发事件的包装器。

  • getConfig() public

    返回配置。

  • getConfigOrFail() public

    返回此特定键的配置。

  • getEventManager() public

    返回此对象的 Cake\Event\EventManager 管理器实例。

  • handleException() public

    处理未捕获的异常。

  • handleFatalError() public

    显示/记录致命错误。

  • handleShutdown() public

    关闭处理程序

  • increaseMemoryLimit() public

    将 PHP 的“memory_limit” ini 设置增加指定的千字节数

  • instance() public static

    获取已设置的注册全局实例。

  • logException() public

    记录异常。

  • logInternalError() public

    触发在渲染异常期间发生的错误。

  • logger() public

    获取日志记录器的实例。

  • register() public

    将此 ExceptionTrap 附加到 PHP 的默认异常处理程序。

  • renderer() public

    获取渲染器的实例。

  • setConfig() public

    设置配置。

  • setEventManager() public

    返回此对象的 Cake\Event\EventManagerInterface 实例。

  • unregister() public

    从单例中删除此实例

方法详细说明

__construct() ¶ public

__construct(array<string, mixed> $options = [])

构造函数

参数
array<string, mixed> $options optional

选项数组。请参见 $_defaultConfig。

_configDelete() ¶ protected

_configDelete(string $key): void

删除单个配置键。

参数
string $key

要删除的键。

返回
void
抛出
Cake\Core\Exception\CakeException
如果尝试覆盖现有配置

_configRead() ¶ protected

_configRead(string|null $key): mixed

读取配置键。

参数
string|null $key

要读取的键。

返回
mixed

_configWrite() ¶ protected

_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void

写入配置键。

参数
array<string, mixed>|string $key

要写入的键。

mixed $value

要写入的值。

string|bool $merge optional

如果为 true,则递归合并,如果为“shallow”,则简单合并,如果为 false,则覆盖,默认为 false。

返回
void
抛出
Cake\Core\Exception\CakeException
如果尝试覆盖现有配置

chooseRenderer() ¶ protected

chooseRenderer(): class-stringCake\Error\ExceptionRendererInterface>

根据配置或 SAPI 选择异常渲染器

返回
class-stringCake\Error\ExceptionRendererInterface>

configShallow() ¶ public

configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this

将提供的配置与现有配置合并。与 config() 方法不同,config() 方法对嵌套键进行递归合并,而此方法进行简单合并。

设置特定值

$this->configShallow('key', $value);

设置嵌套值

$this->configShallow('some.nested.key', $value);

同时更新多个配置设置

$this->configShallow(['one' => 'value', 'another' => 'value']);
参数
array<string, mixed>|string $key

要设置的键,或完整的配置数组。

mixed|null $value optional

要设置的值。

返回
$this

dispatchEvent() ¶ public

dispatchEvent(string $name, array $data = [], TSubject|null $subject = null): Cake\Event\EventInterface<TSubject>

用于创建和分发事件的包装器。

返回分发的事件。

参数
string $name

事件名称。

array $data optional

你希望与该事件一起传输的任何值,监听器都可以读取这些值。

TSubject|null $subject optional

此事件所适用的对象(默认情况下为 $this)。

返回
Cake\Event\EventInterface<TSubject>

getConfig() ¶ public

getConfig(string|null $key = null, mixed $default = null): mixed

返回配置。

用法

读取整个配置

$this->getConfig();

读取特定值

$this->getConfig('key');

读取嵌套值

$this->getConfig('some.nested.key');

使用默认值读取

$this->getConfig('some-key', 'default-value');
参数
string|null $key optional

要获取的键,或整个配置的 null。

mixed $default optional

键不存在时的返回值。

返回
mixed

getConfigOrFail() ¶ public

getConfigOrFail(string $key): mixed

返回此特定键的配置。

此键的配置值必须存在,不能为 null。

参数
string $key

要获取的键。

返回
mixed
抛出
InvalidArgumentException

getEventManager() ¶ public

getEventManager(): Cake\Event\EventManagerInterface

返回此对象的 Cake\Event\EventManager 管理器实例。

你可以使用此实例向对象事件注册任何新的监听器或回调,或者创建你自己的事件并按需触发它们。

返回
Cake\Event\EventManagerInterface

handleException() ¶ public

handleException(Throwable $exception): void

处理未捕获的异常。

使用子类提供的模板方法以环境适当的方式显示错误。

参数
Throwable $exception

异常实例。

返回
void
抛出
Exception
当渲染器类未找到时
另请参见
https://secure.php.net/manual/en/function.set-exception-handler.php

handleFatalError() ¶ public

handleFatalError(int $code, string $description, string $file, int $line): void

显示/记录致命错误。

参数
int $code

错误代码

string $description

错误描述

string $file

发生错误的文件

int $line

触发错误的行号

返回
void

handleShutdown() ¶ public

handleShutdown(): void

关闭处理程序

将致命错误转换为异常,以便我们可以渲染它们。

返回
void

increaseMemoryLimit() ¶ public

increaseMemoryLimit(int $additionalKb): void

将 PHP 的“memory_limit” ini 设置增加指定的千字节数

参数
int $additionalKb

千字节数

返回
void

instance() ¶ public static

instance(): Cake\Error\ExceptionTrap|null

获取已设置的注册全局实例。

请记住,此处的全局状态是可变的,此方法返回的对象可能是过时的值。

返回
Cake\Error\ExceptionTrap|null

logException() ¶ public

logException(Throwable $exception, Psr\Http\Message\ServerRequestInterface|null $request = null): void

记录异常。

主要是一个公共函数,以确保全局异常处理和 ErrorHandlerMiddleware 之间的一致性。此方法将应用 skipLog 过滤器,如果异常不应该记录,则跳过记录。

在尝试记录后,会触发 Exception.beforeRender 事件。

参数
Throwable $exception

要记录的异常

Psr\Http\Message\ServerRequestInterface|null $request optional

可选的请求

返回
void

logInternalError() ¶ public

logInternalError(Throwable $exception): void

触发在渲染异常期间发生的错误。

通过触发 E_USER_ERROR,我们最终可以进入默认的异常处理,这将记录渲染失败,并希望渲染一个错误页面。

参数
Throwable $exception

要记录的异常

返回
void

logger() ¶ public

logger(): Cake\Error\ErrorLoggerInterface

获取日志记录器的实例。

返回
Cake\Error\ErrorLoggerInterface

register() ¶ public

register(): void

将此 ExceptionTrap 附加到 PHP 的默认异常处理程序。

这将替换现有的异常处理程序,之前的异常处理程序将被丢弃。

返回
void

renderer() ¶ public

renderer(Throwable $exception, Psr\Http\Message\ServerRequestInterface|null $request = null): Cake\Error\ExceptionRendererInterface

获取渲染器的实例。

参数
Throwable $exception

要渲染的异常

Psr\Http\Message\ServerRequestInterface|null $request optional

如果可能,请求。

返回
Cake\Error\ExceptionRendererInterface

setConfig() ¶ public

setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this

设置配置。

用法

设置特定值

$this->setConfig('key', $value);

设置嵌套值

$this->setConfig('some.nested.key', $value);

同时更新多个配置设置

$this->setConfig(['one' => 'value', 'another' => 'value']);
参数
array<string, mixed>|string $key

要设置的键,或完整的配置数组。

mixed|null $value optional

要设置的值。

bool $merge optional

是否递归合并或覆盖现有配置,默认为 true。

返回
$this
抛出
Cake\Core\Exception\CakeException
当试图设置一个无效的键时。

setEventManager() ¶ public

setEventManager(Cake\Event\EventManagerInterface $eventManager): $this

返回此对象的 Cake\Event\EventManagerInterface 实例。

你可以使用此实例向对象事件注册任何新的监听器或回调,或者创建你自己的事件并按需触发它们。

参数
Cake\Event\EventManagerInterface $eventManager

要设置的 eventManager

返回
$this

unregister() ¶ public

unregister(): void

从单例中删除此实例

如果此实例不是当前注册的单例,则不会发生任何事情。

返回
void

属性详情

$_config ¶ protected

运行时配置

类型
array<string, mixed>

$_configInitialized ¶ protected

配置属性是否已使用默认值进行配置

类型
bool

$_defaultConfig ¶ protected

配置选项。通常,这些选项将在你的 config/app.php 中定义。

  • exceptionRenderer - string - 负责渲染未捕获异常的类。所选类将用于 CLI 和 Web 环境。如果您希望在 CLI 和 Web 环境中使用不同的类,则需要编写该条件逻辑。
  • log 设置为 false 以禁用日志记录。
  • logger - string - 要使用的错误记录器的类名。
  • trace - boolean - 是否应在记录的异常中包含回溯。
  • skipLog - array - 要跳过日志记录的异常列表。扩展列出异常之一的异常也将不会被记录。例如:
    'skipLog' => ['Cake\Http\Exception\NotFoundException', 'Cake\Http\Exception\UnauthorizedException']

    此选项将转发到配置的 logger

  • extraFatalErrorMemory - int - 遇到致命错误时要增加的内存限制的兆字节数。这允许有足够的喘息空间来完成日志记录或错误处理。
  • stderr 用于控制台环境,以便渲染器可以访问当前控制台输出流。
类型
array<string, mixed>

$_eventClass ¶ protected

新事件对象的默认类名。

类型
string

$_eventManager ¶ protected

Cake\Event\EventManager 的实例,该对象用于分发内部事件。

类型
Cake\Event\EventManagerInterface|null

$callbacks ¶ protected

处理回调的列表。

回调会在处理的每个错误时被调用。回调按它们附加的顺序调用。

类型
arrayClosure>

$disabled ¶ protected

跟踪此陷阱是否已从全局处理程序中删除。

类型
bool

$registeredTrap ¶ protected static

当前注册的全局异常处理程序

这是尽力而为,因为我们不知道是否/何时注册另一个异常处理程序。

类型
Cake\Error\ExceptionTrap|null
OpenHub
Pingping
Linode
  • 业务解决方案
  • 展示
  • 文档
  • 手册
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识 & 商标
  • 社区
  • 参与进来
  • 问题 (Github)
  • 烘焙坊
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 通讯
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • 帮助 & 支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API Docs 生成