peraleks/laravel-pretty-errors

Error formatter for Laravel.

v1.0.0 2017-03-31 11:44 UTC

This package is not auto-updated.

Last update: 2024-11-10 03:05:25 UTC


README

Total Downloads Latest Stable Version License

LaravelPrettyErrors

Error formatter for Laravel 5.1 or later. Provides a convenient display as HTML-page and in the browser console. Provides an enhanced view of the stack trace (viewing the contents of the arguments: array, closure, resource, string; and view PHPDoc classes and methods). Provides the opportunity to configure custom pages 404 and 500.

Install

$ composer require peraleks/laravel-pretty-errors

Usage

Copy file vendor/peraleks/laravel-pretty-errors/src/Config/pretty-errors.php to Laravel config_path (app/config).

Add code to App\Exceptions\Handler :

use Peraleks\LaravelPrettyErrors\Core\PrettyHandler;
use Symfony\Component\Debug\Exception\FlattenException;
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;


    protected function convertExceptionToResponse(Exception $e)
    {
        $html = PrettyHandler::format($e, config_path('pretty-errors.php'));

        $e = FlattenException::create($e);

        return SymfonyResponse::create($html, $e->getStatusCode(), $e->getHeaders());
    }

Configuration

File pretty-errors.php

$development = [

    \Peraleks\LaravelPrettyErrors\Notifiers\HtmlNotifier::class => [
        'enabled'       => true,   // [bool] switch error display as html
        'handleTrace'   => E_ALL,  // [int]  switch trace processing (bitwise mask)
        'simpleTrace'   => true,   // [bool] switch display arguments in trace
        'hideTrace'     => true,   // [bool] switch trace display on start
        'fontSize'      => 15,     // [int]  main font size in pixels (works as a scale)
        'stringLength'  => 80,     // [int]  line length in cells
        'tooltipLength' => 1000,   // [int]  line length in extended view
        'arrayLevel'    => 2,      // [int]  nesting level of arrays
    ],

    \Peraleks\LaravelPrettyErrors\Notifiers\BrowserConsoleNotifier::class => [
        'enabled'        => true,  // [bool]   switch error display in browser console
        'handleTrace'    => E_ALL, // [int]    switch trace processing (bitwise mask)
        'phpNativeTrace' => true,  // [bool]   switch PHP native trace display 
        'console'        => 'log', // [string] browser console section (error|warn|info|log|debug)
    ],
];



$production = [

    \Peraleks\LaravelPrettyErrors\Notifiers\ProductionNotifier::class => [
        'enabled' => true,         // [bool]   switch error page display in production
        'file404' => '',           // [string] fully qualified file name or blade-template name
        'file500' => '',           // [string] fully qualified file name or blade-template name
        
        /* For blade-template, write 'view.404' where '404' is the name for 404.blade.php .
         You can use native PHP template. To do this, enter the fully qualified file name.
          
         The file may not be a template, but must return or print a string.
         For example, a file can contain such a code:
         
         return "<h2>Page not found</h2>";
         
         or
         
         echo view('404')->render();
         */
    ],
];

License

The MIT License (MIT).