类 ErrorTrap
CakePHP 错误处理的入口点。
使用 register()
方法,您可以将 ErrorTrap 附加到 PHP 的默认错误处理程序。
当错误被捕获时,错误会被记录(如果启用了日志记录)。然后会触发 Error.beforeRender
事件。最后,错误会使用定义的渲染器“呈现”。如果配置中没有定义错误渲染器,则会根据 PHP SAPI 选择其中一个默认实现。
属性摘要
-
$_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 的实例,该对象用于分发内部事件。
方法摘要
-
__construct() public
构造函数
-
_configDelete() protected
删除单个配置键。
-
_configRead() protected
读取配置键。
-
_configWrite() protected
写入配置键。
-
chooseErrorRenderer() protected
根据配置或 SAPI 选择错误渲染器。
-
configShallow() public
将提供的配置与现有配置合并。与
config()
方法(对嵌套键进行递归合并)不同,此方法执行简单的合并。 -
dispatchEvent() public
用于创建和分发事件的包装器。
-
getConfig() public
返回配置。
-
getConfigOrFail() public
返回此特定键的配置。
-
getEventManager() public
返回此对象的 Cake\Event\EventManager 管理器实例。
-
handleError() public
处理来自 PHP set_error_handler 的错误。
-
logError() protected
日志记录辅助方法。
-
logger() public
获取日志记录器的实例。
-
register() public
将此 ErrorTrap 附加到 PHP 的默认错误处理程序。
-
renderer() public
获取渲染器的实例。
-
setConfig() public
设置配置。
-
setEventManager() public
返回此对象的 Cake\Event\EventManagerInterface 实例。
方法详情
__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 如果为真,则递归合并;如果为“shallow”,则简单合并;如果为假,则覆盖;默认值为假。
返回值
void
抛出
Cake\Core\Exception\CakeException
如果尝试覆盖现有的配置
chooseErrorRenderer() ¶ protected
chooseErrorRenderer(): class-stringCake\Error\ErrorRendererInterface>
根据配置或 SAPI 选择错误渲染器。
返回值
class-stringCake\Error\ErrorRendererInterface>
configShallow() ¶ public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
将提供的配置与现有配置合并。与 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
handleError() ¶ public
handleError(int $code, string $description, string|null $file = null, int|null $line = null): bool
处理来自 PHP set_error_handler 的错误。
将使用配置的渲染器生成输出并输出。
此方法将分发 Error.beforeRender
事件,该事件可以在全局事件管理器上监听。
参数
-
int
$code 错误代码
-
string
$description 错误描述
-
string|null
$file optional 发生错误的文件
-
int|null
$line optional 触发错误的行
返回值
bool
logError() ¶ protected
logError(Cake\Error\PhpError $error): void
日志记录辅助方法。
参数
-
Cake\Error\PhpError
$error 要记录的错误对象。
返回值
void
logger() ¶ public
logger(): Cake\Error\ErrorLoggerInterface
获取日志记录器的实例。
返回值
Cake\Error\ErrorLoggerInterface
register() ¶ public
register(): void
将此 ErrorTrap 附加到 PHP 的默认错误处理程序。
这将替换现有的错误处理程序,以前的错误处理程序将被丢弃。
此方法还将通过 error_reporting() 设置全局错误级别。
返回值
void
renderer() ¶ public
renderer(): Cake\Error\ErrorRendererInterface
获取渲染器的实例。
返回值
Cake\Error\ErrorRendererInterface
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 可选 是否递归合并或覆盖现有配置,默认为 true。
返回值
$this
抛出
Cake\Core\Exception\CakeException
当尝试设置无效键时。
setEventManager() ¶ public
setEventManager(Cake\Event\EventManagerInterface $eventManager): $this
返回此对象的 Cake\Event\EventManagerInterface 实例。
您可以使用此实例注册任何新的侦听器或回调到对象的事件,或创建您自己的事件并随意触发它们。
参数
-
Cake\Event\EventManagerInterface
$eventManager 要设置的事件管理器
返回值
$this
属性详情
$_defaultConfig ¶ protected
配置选项。通常这些选项在 config/app.php 中定义。
errorLevel
- int - 您感兴趣的错误捕获级别。errorRenderer
- string - 用于渲染错误的类名。默认情况下,根据 SAPI 选择 Html 或 Console。log
- boolean - 是否记录错误。logger
- string - 要使用的错误记录器的类名。trace
- boolean - 是否将回溯包含在记录的错误中。
类型
array<string, mixed>
$_eventManager ¶ protected
Cake\Event\EventManager 的实例,该对象用于分发内部事件。
类型
Cake\Event\EventManagerInterface|null