CakePHP:控制台命令中的自定义错误报告

2024-04-26

我们当前使用 CakePHP 2.4.7 和自定义错误处理程序。自定义错误处理程序适用于通过 HTTP 或 CronDispatcher 发出的每个请求。

不幸的是,当向我们的控制台命令之一发出控制台请求时,错误处理程序被忽略。

请参见以下示例:

核心.php:

App::uses('SentryErrorHandler', 'Sentry.Lib');

Configure::write('Sentry', array(
  //'production_only' => true, // true is default value -> no error in sentry when debug
  'PHP' => array(
    'server' => 'https://XXX:[email protected] /cdn-cgi/l/email-protection/1234'
  )
));

Configure::write('Error', array(
  'handler' => 'SentryErrorHandler::handleError',
  'level' => E_ALL & ~E_DEPRECATED,
  'trace' => true
));

Configure::write('Exception', array(
  'handler' => 'SentryErrorHandler::handleException',
  'renderer' => 'ExceptionRenderer',
  'log' => true
));

XYController.php / XYShell.php:

function test() {
  die(pr([]['test']));
}

在这两种情况下,都会抛出正确的错误:

PHP Parse error:  syntax error, unexpected '[' in /vagrant/htdocs/app/Console/Command/XYShell.php on line 50

Parse error: syntax error, unexpected '[' in /vagrant/htdocs/app/Console/Command/XYShell.php on line 50
Fatal Error Error: syntax error, unexpected '[' in [/vagrant/htdocs/app/Console/Command/XYShell.php, line 50]

但是,当通过 ./cake XY 测试调用上述方法时,错误似乎没有正确传播到自定义错误处理程序。

我错过了什么吗?


控制台和 Web 不使用相同的配置

异常和错误配置有单独的选项 http://book.cakephp.org/2.0/en/development/errors.html#error-configuration标准异常和错误配置:

consoleHandler - 回调 - 在控制台中运行时用于处理错误的回调。如果未定义,将使用 CakePHP 的默认处理程序。

这也是显而易见的从源头 https://github.com/cakephp/cakephp/blob/2.4.7/lib/Cake/Console/ShellDispatcher.php#L154-L178.

因此配置不同的处理程序用于bothweb 和 cli 请求 - 定义handler and consoleHandler keys:

Configure::write('Error', array(
  'handler' => 'SentryErrorHandler::handleError',
  'consoleHandler' => 'SentryErrorHandler::handleError', # <--
  'level' => E_ALL & ~E_DEPRECATED,
  'trace' => true
));

Configure::write('Exception', array(
  'handler' => 'SentryErrorHandler::handleException',
  'consoleHandler' => 'SentryErrorHandler::handleException', # <--
  'renderer' => 'ExceptionRenderer',
  'log' => true
));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CakePHP:控制台命令中的自定义错误报告 的相关文章

  • PHP UTF-8 配置

    我正在使用 PHP 5 3 5 配置 Apache 2 2 17 服务器 我的目标是创建一个默认为内容类型的干净配置UTF 8 php ini default charset UTF 8 default mimetype applicati
  • PHP 数组键字符串不带引号

    我正在将文件移动到服务器 并使用 GET mode 等变量 而 mode 中不带 单引号 它在本地运行良好 但在服务器上我收到通知 我该如何克服这个问题 这是我的 phpinfo 文件phpinfo http solutiq com php
  • 命令运行时从 shell_exec 命令获取输出

    我正在编写一个 PHP 脚本网页 该网页旨在接受先前上传到服务器的 JFFS2 图像的文件名 然后 该脚本将使用映像重新刷新服务器上的分区 并输出结果 我一直在用这个 tmp shell exec update flash v filena
  • phpunit --debug 仍然只显示点

    我想查看 phpunit 运行期间当前执行的测试 我用 debugparam 但仍然只得到点 phpunit debug PHPUnit 3 7 19 by Sebastian Bergmann Configuration read fro
  • PHP中是否可以使用filter_var过滤带小数点的整数?

    我需要像这样过滤值100 50在 PHP 中使用filter var 现在我这样使用 filter var POST amount FILTER SANITIZE NUMBER INT 它给我的结果是10050 我怎么解决这个问题 提前致谢
  • 在 while 循环之外使用变量(作用域)

    关于 PHP 范围的小问题 我似乎无法在 while 循环之外调用变量 report 我尝试过各种事情 包括return 这不起作用 这里唯一起作用的两个函数是如果我echo变量 report在循环内 或者如果我print它 我不想这样做
  • 使用 Jquery Easyui 将数据网格导出到 Excel

    我是 json 新手 我使用 php 从 mysql 表生成了 jason 数据 并希望将生成的 json 导出为 xls 格式 考试导出 php
  • 按给定日期获取上周一和下周一的日期[重复]

    这个问题在这里已经有答案了 我们如何通过提供的日期获取上一周星期一日期和下周星期一日期 示例 if date 2015 04 08 年月日格式 然后函数返回 上周一日期 2015 03 30 下周一日期 2015 04 13 echo Ne
  • Facebook PHP API 登录时抛出异常

    我尝试使用 Facebook Graph API 登录并获取用户信息 我用来获取用户信息的代码以前可以工作 但今天我尝试使用 Facebook 登录 但 Facebook API 抛出此错误 未定义的偏移量 1 home vendor fa
  • PHP 中的多行字符串文字

    考虑 xml l xml vv echo xml 这将回响vv 为什么以及如何为诸如此类的事情执行多行字符串文字简单XML https en wikipedia org wiki SimpleXML etc Well xml l vv Wo
  • CMS:将自定义页面存储为文件或 MySQL 数据库中?

    我正在 PHP 中创建一个自定义 CMS 从头开始编写 并且想知道是否应该将用户创建的页面存储为文件或存储在 MySQL 数据库中 内容全部是 HTML 代码 至少目前是这样 我无法决定该做什么 因为用 php 编写文件似乎存在安全风险 并
  • 从字符串中删除第一个和最后一个字符

    我有这个 dataList one two three list explode dataList echo pre print r list echo pre 其输出 gt Array gt 0 gt gt 1 gt one gt 2 g
  • 控制器中的异常处理 (ASP.NET MVC)

    当您自己的代码抛出异常并从控制器中的操作调用时 应该如何处理 我看到很多最佳实践的例子 其中根本没有 try catch 语句 例如 从存储库访问数据 public ViewResult Index IList
  • 使用 PHP 和 jSON 从 MySQL 获取 UIImage

    我正在开发一个小型新闻阅读器 它通过对 URL 执行 POST 请求来从网站检索信息 响应是一个带有未读新闻的 JSON 对象 例如 应用程序上的最新新闻的时间戳为 2013 03 01 当用户刷新表时 它会发布 domain com ap
  • 为什么 strtotime('a') 返回时间?

    我正在 PHP 5 3 中循环遍历 CSV 文件并检查日期 我一直在使用 strtotime 它运行良好 除了我有一个包含 1 或 2 个字符代码的字段 任何单个字符代码上的 strtotime 似乎都像我要求 now 一样 但如果代码是
  • 根据产品属性在 Magento 中创建购物车规则

    我在一个类别中有产品 针 有些以 100 支为一包出售 有些以 500 支为一包出售 盒子中的针数被设置为产品属性 我想根据购物车中的针总数应用购物车规则 F x 如果您购买 1000 2000 根针头 无论 500 100 包的组合如何
  • Laravel 更新雄辩事件:获取数据

    我一直在读有关雄辩事件的文章 与模型的每次交互都有一个事件 创建 创建 更新 更新 保存 保存 删除 删除 恢复 恢复 我想知道模型更新后的数据以及之前的数据 是否可以 因为文档没有太多关于如何使用这些事件的信息 您正在寻找getDirty
  • Woocommerce 中的 Ajaxify 标头购物车项目计数

    我正在为 WordPress 创建一个自定义 woocommerce 集成主题 我在顶部有一个 blob 显示购物车中的商品总数 我想使用 Jquery 更新此 blob 无需重新加载页面 我能够通过获取购物车中的当前数量来增加商品数量bl
  • 无法下载 Windows 版 Composer SSL:握手超时

    这是我尝试安装 Windows 版 Composer 时得到的结果 The https getcomposer org versions https getcomposer org versions 无法下载文件 SSL 握手超时 无法启用
  • Symfony2 dev环境可以工作,prod环境给出404错误

    我最近在我的机器上成功安装了 Symfony2 我可以访问http localhost app dev php 开发环境 但是 当我尝试访问 prod 环境时 http localhost app php 我在浏览器中收到以下错误消息 哎呀

随机推荐

  • 使用版本控制时处理多台计算机上的 web.config 差异

    我确信每个人都必须处理这些情况 我们检查我们的源代码控制解决方案 每台开发机器都有自己的资源用于调试 构建和测试 最常见的是 网络服务器 IIS 数据库 SQL Web服务器很容易处理 每个开发机器都会有自己的proj user文件来指定不
  • 从 XGrabKeyboard 中排除一些键

    考虑一个应用程序 需要在聚焦时抓住键盘 以便捕获所有窗口管理器命令 Alt F4 等 进行处理 现在 这有一个缺点 即当键盘被抓住时 用户无法通过键盘切换到另一个应用程序或虚拟桌面 我想要一个用户定义的组合键白名单 例如 用于切换虚拟桌面的
  • 如何使用plotlyexpress添加置信区间fillcontour?

    我正在使用plotlyexpress 添加趋势线 现在如何像seaborn regplot 中那样绘制置信区间 df px data tips fig px scatter df x total bill y tip trendline o
  • 变换/不透明度属性是否调用浏览器传送带中的绘制步骤

    调查浏览器的渲染工作原理我注意到在带有启用标志的 Chrome 开发工具中paint flashing触发更改时的绘制步骤transform opacity财产 使用代码查看这些屏幕截图 示例1 transform opacity财产 le
  • dplyr & r: 匿名函数可能需要加上括号

    我想我偶然发现了拼写错误的第一个错误 我正在使用 R 和 dplyr 运行以下代码 gt foobar c 1 2 3 gt foobar gt as character 1 1 2 3 这工作正常 现在我尝试通过匿名函数运行它 gt fo
  • zend 框架 where 查询中的语句

    我如何使用 php 和 zend 框架在 mysql 查询中使用 And or 现在我正在使用这个 db Zend Db Table getDefaultAdapter select new Zend Db Select db select
  • 如何以正确的方式从 JavaScript 获取 contextPath?

    使用基于 Java 的后端 即 servlet 和 JSP 如果我需要来自 JavaScript 的 contextPath 建议的模式是什么 为什么 我能想到几种可能性 我还缺什么吗 1 将 SCRIPT 标签烧录到页面中 并在某些 Ja
  • vim 脚本:如何在 vim 函数中执行命令

    为什么会出现以下情况 let s colorschemes synic ir black let s colorscheme idx 0 function RotateColorscheme let s colorscheme idx 1
  • 计算 docx 文档中的页数

    我有一个word文件 我想计算其中有多少页 该文件是使用 Docx4Java 创建的 以前有人这样做过吗 Thanks docx4j 没有页面布局模型 因此它无法告诉您页数 您可以使用 FOP 的页面布局模型获得大致的页数 docx4j 的
  • 使用 iOS 7 SDK 构建时 UITextView 会自动换行

    我有一个UITextView里面一个UIScrollView效果很好iOS 6建造自xcode 4 x 但是现在构建xcode 5它无法正常工作 即使在iOS 6 问题是文本会随着屏幕宽度换行 即使UITextView and UIScro
  • C# 中参数/参数之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 参数和参数有什么区别 https stackoverflow com questions 156767 whats the difference between an argument and a p
  • Delphi 的免费软件数据透视表组件?

    Delphi 是否有开源或免费软件的数据透视表组件 据我所知 Delphi 没有免费的枢轴组件 在 Torry net 上查找 delphi 中最著名的枢轴组件是 Develop Express 的 ExpressPivotGrid Sui
  • 使用管道的Python多进程非阻塞相互通信

    是否可以使用管道以非阻塞方式接收进程间通信 考虑以下代码 from multiprocessing import Process Pipe import time def f conn time sleep 3 conn send Done
  • 无法实例化抽象类...在appDevDebugProjectContainer.php - Symfony2

    我昨天刚安装的apc我现在收到此错误 FatalErrorException Error Cannot instantiate abstract class ACME WebBundle Menu MenuBuilder in var ww
  • 通过 perl 脚本使用代理

    我想在这个 perl 脚本中使用代理 但我不知道如何让它使用代理 usr bin perl use IO Socket remote IO Socket INET gt new Proto gt tcp PeerAddr gt localh
  • 如何将本地文件名传递给 ClassPathXmlApplicationContext?

    本地文件名 是指资源文件与类文件位于同一目录中 在下面的例子中 这是JUnitRunner class文件 爪哇的getResource http docs oracle com javase 7 docs api java lang Cl
  • 命令 /usr/bin/codesign 失败,退出代码 1

    我正在尝试在我的手机上测试一个应用程序 我不断收到此错误 Command usr bin codesign failed with exit code 1 我已经添加了配置文件并完成了 Apple iPhone 门户上的设置 我已经看了这个
  • Scala:返回布尔值的模式匹配的缩写形式

    我发现自己经常写这样的东西 a match case b gt do stuff case gt do nothing 有没有更短的方法来检查某个值是否与模式匹配 我的意思是 在这种情况下我可以写if a b do stuff 但是如果模式
  • Cookie 与 FormsAuthentication.SetAuthCookie() 方法的混淆

    StackOverflow 上有很多关于此的帖子 但我仍然无法解决我的确切问题 要点如下 我有一个需要身份验证的网站 我正在使用标准 NETFormsAuthentication SetAuthCookie 保持用户会话的方法 我的问题是这
  • CakePHP:控制台命令中的自定义错误报告

    我们当前使用 CakePHP 2 4 7 和自定义错误处理程序 自定义错误处理程序适用于通过 HTTP 或 CronDispatcher 发出的每个请求 不幸的是 当向我们的控制台命令之一发出控制台请求时 错误处理程序被忽略 请参见以下示例