超薄框架很好 - 非常好。我遇到的一个问题是它处理错误的方式。在vanilla PHP代码中,我偶尔会使用trigger_error语句作为调试辅助工具。在vanilla PHP中,这没有任何不良后果,因为默认情况下,trigger_errors是E_USER_NOTICE类型的错误,它们不会阻止脚本死在其轨道中。但是,在Slim中,事情似乎有所不同。良性的trigger_error会导致它抖动并返回HTTP 500.
我认为这可以通过
来纠正下一个停靠端口 - 更改超薄错误记录级别
$ app = new \ Slim \ Slim(array('log.level'=> \ Slim \ Log :: ERROR);
与PHP的error_reporting效果不同。设置它可以阻止错误浮动到error.log文件(Slim使用的默认错误记录器),但关键是它不停止HTTP 500。
我遇到过建议更换默认Slim :: handleErrors方法的论坛帖子。这很容易,但我想知道这是不是不正确。当Slim遇到一个完全无害的trigger_error时,什么是阻止Slim停止运行的正确方法?我可以避免这种情况,但我可能会依赖其他可能包含此类语句的代码。我非常感谢任何帮助
答案 0 :(得分:2)
答案结果很简单。我通过查看slim.php中的 handleErrors 函数来解决这个问题。刚发出一个
error_reporting(E_ALL & ~E_USER_WARNING);
在调用 trigger_error 并开始营业之前
。 Slim正在改变默认的PHP error_reporting以包含E_USER_WARNING。