cerbero / sql-dumper
Laravel package to dump SQL queries.
Fund package maintenance!
cerbero90
Installs: 7 376
Dependents: 0
Suggesters: 0
Security: 0
Stars: 23
Watchers: 3
Forks: 2
Open Issues: 0
Requires
- php: ^7.1||^8.0
- illuminate/container: >=5.6
- illuminate/database: >=5.6
- illuminate/mail: >=5.6
- illuminate/support: >=5.6
- jdorn/sql-formatter: ^1.2
- symfony/console: >=4.0
Requires (Dev)
- mockery/mockery: ^1.3
- orchestra/testbench: >=3.6
- phpunit/phpunit: >=7.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-11-09 14:45:23 UTC
README
Laravel package to dump SQL queries, related EXPLAIN
and location in code in different formats:
- HTML
- markdown
- console
- log
Install
Via Composer
composer require --dev cerbero/sql-dumper
To customize some aspects of this package, the config/sql_dumper.php
file can optionally be generated via:
php artisan vendor:publish --tag=sql-dumper
Usage
The easiest way to dump a SQL query is calling the helper functions. There is a helper for each dumper:
ds()
dump SQL queries with the dumper specified inconfig/sql_dumper.php
as default dumperdsConsole()
dump SQL queries with the console dumperdsEmail()
dump SQL queries with the email dumperdsHtml()
dump SQL queries with the html dumperdsLog()
dump SQL queries with the log dumperdsMarkdown()
dump SQL queries with the markdown dumper
All SQL queries executed within the helper's closure are dumped:
$user = ds(function () { return User::with('posts')->find(1); });
Depending on dumper and database driver, SQL queries dumps will look like:
Along with the default dumper, in config/sql_dumper.php
we may customize the SQL dumpers default behavior. For example, the HTML dump default path is /storage/sql_dump_TIMESTAMP.html
but we can set a different one:
return [ HtmlDumper::class => [ 'path' => storage_path('foo.html'), ], ];
Also templates and email recipient are customizable, please refer to the [configuration][link-config] for further details.
This package includes a middleware to easily dump SQL queries in routes or group of routes. The middleware can be registered in app/Http/Kernel.php
:
protected $routeMiddleware = [ 'sql.dump' => \Cerbero\SqlDumper\Http\Middleware\SqlDump::class, ];
Then we can add it to routes to run the default dumper:
Route::middleware('sql.dump')->get('users', function () { return User::all(); });
If we want to use a different dumper, we can pass it to the middleware as a parameter:
Route::middleware('sql.dump:log')->get('users', function () { return User::all(); });
The valid parameters are:
console
email
html
log
markdown
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email andrea.marco.sartori@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.