onecentlin/laravel-adminer

Laravel Adminer 数据库管理器

7.0.0 2024-03-02 15:15 UTC

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

Screenshot

备注

由于 Laravel 5 和 Adminer 的函数名冲突,adminer.php 文件中的函数 cookie()redirect()view() 前缀为 adm_

miroc 启发