onigoetz / profiler
Next Generation PHP Profiler for Laravel
Installs: 1 623
Dependents: 0
Suggesters: 0
Security: 0
Stars: 37
Watchers: 2
Forks: 5
Open Issues: 0
Requires
- php: >=5.3.0
- illuminate/support: 4.0.x
- symfony/stopwatch: 2.2.x
This package is auto-updated.
Last update: 2022-02-01 12:25:17 UTC
README
DISCONTINUED
This project is no longer maintained and I won't provide support for it.
I recommend to use Laravel Debugbar or PHP Debugbar
Installation
Add this dependency to composer.json
with this command:
composer require-dev onigoetz/profiler:dev-master
And add this in your configuration/app.php
file. This will allow the Profiler to only load locally and will not clutter your production build.
'providers' => array( 'Onigoetz\Profiler\Support\Laravel\ProfilerServiceProvider', ... ), 'aliases' => array( ... 'Stopwatch' => 'Onigoetz\Profiler\Stopwatch' ... ) ``` Then do `./artisan asset:publish onigoetz/profiler` to publish the javascript/css files ## Configuration By default, the profiler will run only in environment that are not "production" You can override all default values by doing `./artisan config:publish onigoetz/profiler` and editing the `profiler.php` file. ### Options - `environments` An array of environments on which the profiler may be shown - `assets_auto` If set to true (default) it will include its assets itself, you can disable this to add the assets to your own build process - `panels` An array of classes that extend `Onigoetz\Profiler\Panel` you can add your own panels and reorder them. - `slow_query` Threshold in milliseconds after which it is considered slow ## Panels All panels are work in progress for the moment, many changes may happen ### Time This panel provides a way to watch for events in a graphical way. You can profile anything anywhere in your code by using the `Stopwatch` facade. It's a facade for a stopwatch heavily inspired from [Stopwatch Symfony component](http://symfony.com/doc/current/components/stopwatch.html), the difference is that mine doesn't support sections As any Laravel Facade you don't have to initialize it, just use it __Example:__ ```php Stopwatch::start('stuff to benchmark'); //do your stuff Stopwatch::stop('stuff to benchmark'); ``` ### Database Provide a list of executed queries and their bindings. Also checks for duplicated queries, based on raw SQL without bindings, small but useful tool to track down which query could be improved ### Router List of declared routes with some more informations ( route name, filter, hostname, action …) Also highlights the current route. (The same informations as the `./artisan routes` + highlighted current route) ### Variables Dump of `$_GET`, `$_POST`, `$_FILES`, `$_COOKIE`, Session, `$_SERVER` and `$_ENV` variables ### Log Registers a new log handler to output the logs from the current run ### Files List of loaded files and their size ### Bookmarklets A list of useful bookmarklets + loaded scripts on the current page ## How it works Each panel is a class that has some methods to do it's stuff * `$data` All data must be stored here, so we can serialize the class easily * `register()` called on `App::before()` here you can register some classes or events * `getData()` retrieve the data and store in `$this->data` * `getName()` return a string with the name, will be used as an id and class in HTML * `render()` return a `View` with the rendered panel * `renderTitle()` return a `PanelTitle` object with the title properties