onecentlin / laravel-adminer
Laravel Adminer 数据库管理器
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
轻量级 Adminer 数据库管理工具,集成到 Laravel 5/6/7/8/9。
支持多种数据库:MySQL、SQLite、PostgreSQL、Oracle、MS SQL、Firebird、SimpleDB、MongoDB、Elasticsearch 等。
v7.0 新特性
- Laravel 11.x 兼容性
- Adminer 插件支持
v6.0 新特性
简化包设置,让生活更轻松 =)
- 启用 Laravel 自动包发现
- 新配置设置:
middleware
(默认值:auth
) - 启用环境变量来设置 adminer 配置
ADMINER_ENABLED
ADMINER_AUTO_LOGIN
ADMINER_ROUTE_PREFIX
安装
composer require onecentlin/laravel-adminer
或
更新 composer.json
中的 require 部分
"require": { "onecentlin/laravel-adminer": "^7.0" },
运行
composer update onecentlin/laravel-adminer
注册包
Laravel 自动包发现功能自包 v6.0 起已添加,您可能可以跳过此步骤。
更新 config/app.php
'providers' => [ ... Onecentlin\Adminer\ServiceProvider::class, ];
发布配置和主题文件
php artisan vendor:publish --provider="Onecentlin\Adminer\ServiceProvider"
此操作将复制两个文件和一个文件夹
config/adminer.php
- Adminer 配置文件public/adminer.css
- Adminer 主题文件resources/plugins
- Adminer 插件目录
配置文件: 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' => [], ];
注意:请仅启用带有身份验证保护的自动登录。
主题文件: public/adminer.css
您可以从 Adminer 下载 adminer.css
或创建自定义样式,并将其放入 public
文件夹。
设置访问权限(中间件)
包 v6.0 允许自定义中间件配置,您可能可以跳过此步骤或根据需要修改。
Laravel 11 中间件设置更改
由于 Laravel v11 删除了 Kernel.php
,中间件设置指向 bootstrap/app.php
在 withMiddleware
部分添加您的中间件组
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 及以上
Laravel 5.2 及以上版本的中间件组设置
修改 config/adminer.php
: 'middleware' => 'adminer',
修改 app/Http/Kernel.php
文件,在 $middlewareGroups
中添加 adminer
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, ], ];
启用插件
将插件文件放入 resources/adminer/plugins
修改 config/adminer.php
: 'plugins' => []
,通过添加插件类名称和所需任何参数
return [ ... 'plugins' => [ 'PluginClassNameWithoutArguments', 'PluginClassNameWithArgument' => 'argument_value', 'PluginClassNameWithMultipleArguments' => ['arg1', 'arg2', ...], ], ];
访问 adminer
在网页浏览器中打开 URL
http://[your.domain.com]/adminer
备注
由于 Laravel 5 和 Adminer 的函数名冲突,adminer.php 文件中的函数 cookie()
、redirect()
和 view()
前缀为 adm_
。
受 miroc 启发