evonext / tracy
A EvoNext CMS Package to integrate Nette Tracy Debugger
Installs: 7
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:package
Requires
- php: ^7.4|^8.0
- illuminate/contracts: ^8.0|^9.0
- illuminate/database: ^8.0|^9.0
- illuminate/routing: ^8.0|^9.0
- illuminate/session: ^8.0|^9.0
- illuminate/support: ^8.0|^9.0
- illuminate/view: ^8.0|^9.0
- tracy/tracy: >=2.4,<2.9
Requires (Dev)
- mockery/mockery: ^1.0
- nesbot/carbon: ^1.20|^2.0
- orchestra/testbench: ^6.23|^7.0
- phpunit/phpunit: ^8.0|^9.0
This package is not auto-updated.
Last update: 2024-11-12 23:45:40 UTC
README
Better Exception Handler
Features
- Visualization of errors and exceptions
- Debugger Bar (ajax support @v1.5.6)
- Exception stack trace contains values of all method arguments.
Installation
To get the latest version of Laravel Exceptions, simply require the project using Composer:
composer require evonext/tracy --dev
Instead, you may of course manually update your require
block and run composer update
if you so choose:
{ "require-dev": { "evonext/tracy": "^1.0" } }
Include the service provider within config/app.php
. The service provider is needed for the generator artisan command.
'providers' => [ ... EvoNext\Tracy\TracyServiceProvider::class, ... ];
If you see Route tracy.bar
not defined, please run artisan route:clear
once
artisan route:clear
Config
Basic settings can be changed using environment variables:
TRACY_ENABLED=true # true | false | 'manager' | 'web' TRACY_SHOW_BAR=true # true | false TRACY_EXCEPTION=true # true | false TRACY_MGR_TOP_FRAME=false # true | false
Publish config
If you need to change other settings, publish the configuration:
php artisan vendor:publish --provider="EvoNext\Tracy\TracyServiceProvider"
The /config
directory will contain the file tracy.php
, which you can change as you see fit.
return [ /* Activate tracy |-------------------------------------------------------------------------- | Available values: | true – Enable for any context | false – Disable for any context | 'manager' – Enable only for manager context (admin area) | 'web' – Enable only for web context (public area) |-------------------------------------------------------------------------- */ 'enabled' => env('TRACY_ENABLED', env('APP_DEBUG') === true), /* Show bar |-------------------------------------------------------------------------- */ 'showBar' => env('TRACY_SHOW_BAR', env('APP_ENV') !== 'production'), /* Show exceptions |-------------------------------------------------------------------------- */ 'showException' => env('TRACY_EXCEPTION', true), /* The URL prefix for the manager dashboard |-------------------------------------------------------------------------- */ 'managerPrefix' => 'admin', /* The URL prefix for a frame top level the manager dashboard |-------------------------------------------------------------------------- */ 'managerTopRoute' => 'main', /* If true tracy shown bar in a frame top level | instead pages frames in the manager context |-------------------------------------------------------------------------- */ 'enabledInTopFrame' => env('TRACY_MGR_TOP_FRAME', false), 'route' => [ 'prefix' => 'tracy', 'as' => 'tracy.', ], 'accepts' => [ 'text/html', ], 'appendTo' => 'body', 'editor' => 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace', 'maxDepth' => 4, 'maxLength' => 1000, 'scream' => true, 'showLocation' => true, 'strictMode' => true, 'editorMapping' => [], 'panels' => [ 'routing' => true, 'database' => true, 'view' => true, 'event' => false, 'session' => true, 'request' => true, 'auth' => true, 'html-validator' => false, ], ];
Editor Link
See https://tracy.nette.org/en/open-files-in-ide
Debugger Bar
Images clickable
Custom Auth
// app/Providers/AppServiceProvider.php
namespace App\Providers;
use Recca0120\LaravelTracy\BarManager;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot(BarManager $barManager)
{
$barManager->get('auth')->setUserResolver(function() {
return [
'id' => 'xxx',
'username' => 'xxx',
...
];
});
}
}