相关疑难解决方法(0)

你可以取消注册关机功能吗?

是否有可能在PHP中取消注册设置的功能(或所有功能)register_shutdown_function()

php

26
推荐指数
2
解决办法
9879
查看次数

在Laravel生产中完全禁用错误报告?

我想完全禁止生产错误报告,因为我们有一些非常旧的代码,我们仍然需要修复,但现在确实有效(是的我也不喜欢它).我们无法在几天内修复所有内容,因此我们需要像往常一样压制警告和异常.

真正的问题是它已经在一个简单的懒惰的bug上引发异常(因为没有定义var)

if(!$var) {
     // do whatever
}
Run Code Online (Sandbox Code Playgroud)

试着

APP_DEBUG = FALSE

APP_LOG_LEVEL =紧急

display_errors(false);
set_error_handler(null);
set_exception_handler(null);
Run Code Online (Sandbox Code Playgroud)

但它仍然显示出一个 ErrorException

未定义的变量:script_name_vars_def

编辑:代码的工作原理如下

web.php

Route::any('/someroute', 'somecontroller@controllerFunc');
Run Code Online (Sandbox Code Playgroud)

somecontroller.php

public controllerFunc() {
    ob_start();
    require '/old_index.php';
    $html = ob_get_clean();

    return response($html);
}
Run Code Online (Sandbox Code Playgroud)

这样我们就可以使用Laravel路由,而无需立即重写旧代码.

我知道我可以很容易地修复这个警告,但是这些错误还有很多,我们现在需要使用Laravel路由.稍后解决问题.

思路

编辑解释中间件无法正常工作的步骤

1)创建midddleware

php artisan make:middleware SuppressExceptions
Run Code Online (Sandbox Code Playgroud)

2)写下来

SuppressExceptions.php

public function handle($request, Closure $next)
{
    error_reporting(0);
    return $next($request);
}
Run Code Online (Sandbox Code Playgroud)

3)注册

laravel /应用/ HTTP/Kernel.php

protected $middlewareGroups = [
   'web' => [
       \App\Http\Middleware\SuppressExceptions::class,
],
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 laravel-5.3 laravel-5.4

13
推荐指数
3
解决办法
2万
查看次数

Laravel 5.2 应用程序 - 调试是错误的,但我仍然看到 PDO 异常

我有一个 Laravel 5.2 应用程序,它在无法连接到数据库(包括数据库的 IP 和用户名/密码)时显示典型的“糟糕,出了点问题”PDO 错误。

在我的 app.php 文件中,我有:

'debug' => false,
Run Code Online (Sandbox Code Playgroud)

我还尝试清除服务器上的缓存以查看它是否仍然停留在调试中,但这并没有做任何事情。

任何有关如何阻止这种情况的帮助将不胜感激。

pdo laravel laravel-5.2

4
推荐指数
1
解决办法
3787
查看次数

禁用laravel的内置错误屏幕

我想禁用Laravel的错误屏幕,显示错误/异常以及调试信息和函数跟踪.主要是因为我使用Laravel作为移动API后端,并且这些响应在移动设备上难以阅读.

请注意我想要的错误,但不是错误的错误页面.

有什么建议?

php error-handling laravel laravel-4

3
推荐指数
1
解决办法
1万
查看次数

禁用测试的Laravel异常处理

我遵循的是testdrivenlaravel课程,它提到了一种禁用Laravel异常处理的方法,以防止Laravel处理发生的异常并抛出该异常,因此我们可以在测试输出中得到更详细的错误。

所以我在测试用例类中添加了此方法,然后在render方法中抛出了异常

protected function disableExceptionHandling() {

    $this->app->instance(Handler::class, new class extends Handler {
        public function __construct()
        {
        }
        public function report(\Exception $e)
        {
        }
        public function render($request, \Exception $e)
        {
            throw $e;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,每当我在测试中调用它时,为了获得更详细的错误,我仍然会得到与Laravel Handler呈现的错误相同的错误。

当我Handler像这样直接更改类时:

public function render($request, Exception $exception)
{
    throw $exception;
    // return parent::render($request, $exception);
}
Run Code Online (Sandbox Code Playgroud)

我得到了详细的错误,但是我需要完成disableExceptionHandling助手的工作。

tdd laravel

3
推荐指数
1
解决办法
1606
查看次数