onecentlin / laravel-adminer
Laravel Adminer Database Manager
Installs: 334 849
Dependents: 1
Suggesters: 0
Security: 0
Stars: 245
Watchers: 7
Forks: 45
Open Issues: 7
Requires
- php: >=7.4.0
- illuminate/contracts: ~5.0|~6.0|~7.0|~8.0|~9.0|~10.0|^11.0
- illuminate/routing: ~5.0|~6.0|~7.0|~8.0|~9.0|~10.0|^11.0
- illuminate/support: ~5.0|~6.0|~7.0|~8.0|~9.0|~10.0|^11.0
README
Light weight Adminer database management tool integrated into Laravel 5/6/7/8/9.
Various database support: MySQL, SQLite, PostgreSQL, Oracle, MS SQL, Firebird, SimpleDB, MongoDB, Elasticsearch, and etc.
v7.0 New Features
- Laravel 11.x Compatibility
- Adminer plugins support
v6.0 New Features
Make life easier with minimized package setup =)
- Enable laravel auto package discovery
- New config setting:
middleware
(default value:auth
) - Enable env variables to setup adminer config
ADMINER_ENABLED
ADMINER_AUTO_LOGIN
ADMINER_ROUTE_PREFIX
Installation
composer require onecentlin/laravel-adminer
OR
Update composer.json
in require section:
"require": { "onecentlin/laravel-adminer": "^7.0" },
Run:
composer update onecentlin/laravel-adminer
Register package
Laravel auto package discovery feature added since package v6.0, you may skip this step.
Update config/app.php
'providers' => [ ... Onecentlin\Adminer\ServiceProvider::class, ];
Publish config and theme file
php artisan vendor:publish --provider="Onecentlin\Adminer\ServiceProvider"
This action will copy two files and one folder:
config/adminer.php
- Adminer config filepublic/adminer.css
- Adminer theme fileresources/plugins
- Adminer plugins directory
config file: config/adminer.php
<?php return [ 'enabled' => env('ADMINER_ENABLED', true), 'autologin' => env('ADMINER_AUTO_LOGIN', false), 'route_prefix' => env('ADMINER_ROUTE_PREFIX', 'adminer'), 'middleware' => 'auth', 'plugins' => [], ];
ATTENSION: Please only enable autologin with authenticated protection.
theme file: public/adminer.css
You may download adminer.css
from Adminer or create custom style, and place it into public
folder.
Setup Access Permission (Middleware)
Package v6.0 allow customized middleware config, you may skip this step or modify to fit your needs.
Laravel 11 middleware setup changes
Since Laravel v11 remove Kernel.php
, the middleware setup point to bootstrap/app.php
Add your middleware group in withMiddleware
section:
return Application::configure(basePath: dirname(__DIR__)) ->withProviders() ->withRouting() ->withMiddleware(function (Middleware $middleware) { // [SETUP HERE] Adminer Middleware group $middleware->group('adminer', [ \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\Auth\Middleware\Authenticate::class, ]); }) ->withExceptions(function (Exceptions $exceptions) { // })->create();
Laravel 5.2 and above
Setup for middleware group supported for Laravel 5.2 above (~v10)
Modify config/adminer.php
: 'middleware' => 'adminer',
Modify app/Http/Kernel.php
file with adminer
in $middlewareGroups
protected $middlewareGroups = [ ... 'adminer' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Session\Middleware\StartSession::class, // TODO: you may create customized middleware to fit your needs // example uses Laravel default authentication (default protection) \Illuminate\Auth\Middleware\Authenticate::class, ], ];
Enable Plugins
Drop your plugin files in resources/adminer/plugins
Modify config/adminer.php
: 'plugins' => []
by adding the name of the plugin class and any argument required
return [ ... 'plugins' => [ 'PluginClassNameWithoutArguments', 'PluginClassNameWithArgument' => 'argument_value', 'PluginClassNameWithMultipleArguments' => ['arg1', 'arg2', ...], ], ];
Access adminer
Open URL in web browser
http://[your.domain.com]/adminer
Remarks
Due to function name conflicts of Laravel 5 and Adminer, adminer.php file
functions cookie()
, redirect()
and view()
are prefixed with adm_
prefix.
Inspired by miroc