dereuromark / cakephp-whoops
CakePHP 错误处理器
Requires
- php: >=8.1
- cakephp/cakephp: ^5.0
- filp/whoops: ^2.0
Requires (Dev)
- fig-r/psr2r-sniffer: dev-master
- phpunit/phpunit: ^10.1
README
演示视频: Linux Mint + Firefox
此分支适用于 CakePHP 5.0+。详细信息请参阅 版本映射。
安装
使用 Composer
composer require dereuromark/cakephp-whoops
由于此包仅提供 CakePHP 的 Whoops 处理器,因此无需启用它(无需 ->addPlugin()
调用)。您只需配置 config/app.php
或 config/app_local.php
中的渲染器类即可。
'Error' => [ 'exceptionRenderer' => \CakephpWhoops\Error\WhoopsExceptionRenderer::class, 'errorRenderer' => \CakephpWhoops\Error\WhoopsErrorRenderer::class ],
当使用新的 Application.php 和 Middleware 方法时,您也需要调整这一点。
// Replace ErrorHandlerMiddleware with ->add(new \CakephpWhoops\Error\Middleware\WhoopsHandlerMiddleware(Configure::read('Error')))
调试模式
重要提示:此插件作为必需依赖项安装,但它更常作为 require-dev 使用。如果关闭调试模式,它将完全忽略 Whoops 处理器,因为没有调试模式就没有异常可以渲染。然后它将显示公共错误消息,并在内部记录。
因此,请确保您启用调试(本地)以检查此包。然后,您应该在屏幕上看到改进的 whoops 处理器输出。
编辑器
通过在浏览器中单击文件在编辑器中打开受到大多数主要 IDE 的支持。它使用 phpstorm://
URL,这可以通过命令行调用打开文件并直接跳转到正确行。
设置您的配置如下
'Whoops' => [ 'editor' => true, ],
以启用它。
如果您正在使用虚拟机,例如 CakeBox,您还需要路径映射
'userBasePath' => 'C:\wamp\www\cakebox\Apps\my-app.local', 'serverBasePath' => '/home/vagrant/Apps/my-app.local',
如果您想覆盖默认 URL 处理器(phpstorm://
),可以通过将 ideLinkPattern
选项设置为自定义 URL 处理器来实现。
- PhpStorm:
phpstorm://open?file=%s&line=%s
- Visual Studio Code:
vscode://file/%s:%s
有关不同操作系统和浏览器的更多详细信息,请参阅 Wiki。
严格性
作为额外的好处,错误处理器在这里对开发更加严格。它不仅会忽略警告和其他错误,而且会以相同的方式显示它们,以便像异常一样轻松快速地修复它们。
通常,当找不到变量时,所有后续代码也可能无法产生任何有用的结果,如下面的示例所示。最好首先编写更干净的代码,并尽量避免产生任何警告或通知。
之前
之后