lagdo / jaxon-adminer
Requires
- jaxon-php/jaxon-core: ^3.5
- jaxon-php/jaxon-dialogs: ^3.0
README
此包已弃用。请参阅Jaxon DbAdmin包。
此包将数据库管理仪表板插入现有的PHP应用程序中。由于使用了Jaxon库,它可以在应用程序的页面中安装和运行。所有操作都通过Ajax请求执行。
它基于Adminer,因此将提供相同的功能。例如,它将能够管理MySQL、PostgreSQL、Sqlite、MsSQL、MongoDb和Oracle数据库。
功能
- 连接到MySQL数据库。
- 显示MySQL数据库服务器的基本信息。
- 显示连接数据库中的表列表。
- 显示MySQL数据库服务器的详细信息。
- 显示连接数据库的详细信息。
- 连接到PostgreSQL数据库。
- 限制对服务器信息和数据库的访问。
- 执行请求并显示结果。
- 将数据库导出到sql文件。
- 从一个或多个sql文件导入数据库。
- 连接到其他数据库类型。
- 添加其他UI框架,如Bootstrap,并允许用户选择他喜欢的框架(部分实现,用户可以在Bootstrap 3和4之间选择)。
- 改进Adminer代码库(正在进行中,请参阅https://github.com/lagdo/jaxon-adminer-drivers仓库)。
- 添加测试
如何使用
在Jaxon网站上这篇博客文章解释了如何在基于Laravel框架的Voyager管理面板上安装Jaxon Adminer:英文版In english,法文版in french。
文档
安装Jaxon库,使其从配置文件启动并处理Ajax请求。以下是文档。
使用Composer安装此包。如果存在针对您的框架的Jaxon插件,您也可以安装它。这将自动化前面的步骤。
在Jaxon配置文件的app
部分中声明包和数据库服务器。
'app' => [ // Other config options // ... 'packages' => [ Lagdo\Adminer\Package::class => [ 'servers' => [ 'first_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials ], 'second_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials ], ], ], ], ],
使用对jaxon()->getCss()
和jaxon()->getScript(true)
的调用,将CSS和javascript代码插入到您的应用程序的HTML页面中。
在显示仪表板的页面中,插入对jaxon()->package(\Lagdo\Adminer\Package::class)->getHtml()
的调用的HTML代码。有两种可能的情况。
-
如果仪表板显示在专用页面上,则在加载页面时在您的PHP代码中调用
jaxon()->package(\Lagdo\Adminer\Package::class)->ready()
。 -
如果仪表板在已显示的页面上通过Ajax请求加载,请在页面加载后执行调用
jaxon()->package(\Lagdo\Adminer\Package::class)->getReadyScript()
返回的JavaScript代码。
额外的配置选项
还有一些配置选项可以用来自定义Jaxon Adminer
的操作。
default
选项设置了当Jaxon Adminer
启动时必须连接的数据库服务器。
'app' => [ 'packages' => [ Lagdo\Adminer\Package::class => [ 'servers' => [ 'first_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials ], 'second_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials ], ], 'default' => 'second_server', ], ], ],
access
选项限制了对任何服务器上的数据库或定义的数据库集的访问。如果包级别上的access.server
设置为false
,则将禁止访问所有服务器信息。此access.server
选项也可以在服务器级别设置,在这种情况下,它仅适用于该特定服务器。
'app' => [ 'packages' => [ Lagdo\Adminer\Package::class => [ 'servers' => [ 'first_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials ], 'second_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials 'access' => [ 'server' => true, ], ], ], 'default' => 'second_server', 'access' => [ 'server' => false, ], ], ], ],
在上面的配置中,用户只能访问second_server
上的服务器信息。
access.databases
和access.schemas
选项定义了用户可以访问的数据库和模式集。此选项只能在服务器级别定义,并将适用于该特定服务器。
'app' => [ 'packages' => [ Lagdo\Adminer\Package::class => [ 'servers' => [ 'first_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials ], 'second_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials 'access' => [ 'server' => false, 'databases' => ['db1', 'db2', 'db3'], 'schemas' => ['public'], ], ], ], 'default' => 'second_server', ], ], ],
在上面的配置中,用户只能访问second_server
上的三个数据库,而他将有对first_server
的完全访问权限。
数据导入
可以上传并执行服务器上的SQL文件。此功能是通过使用Jaxon ajax upload功能实现的,然后需要在Jaxon
配置文件的lib
部分中进行配置。
'lib' => [ 'upload' => [ 'files' => [ 'sql_files' => [ 'dir' => '/path/to/the/upload/dir', ], ], ], ],
如Jaxon ajax upload文档中所述,sql_files
是文件上传字段的name
属性,当然/path/to/the/upload/dir
需要可写。也可以定义其他参数来限制上传文件的大小或限制它们的扩展名或MIME类型。
数据导出
数据库也可以导出为各种类型的文件:SQL、CSV等。必须在配置中定义一个目录来保存导出的文件,以及一个可以下载的URL。
'app' => [ 'packages' => [ Lagdo\Adminer\Package::class => [ 'servers' => [ 'first_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials ], 'second_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials 'access' => [ 'server' => true, ], ], ], 'default' => 'second_server', 'access' => [ 'server' => false, ], 'export' => [ 'dir' => '/path/to/the/export/dir', 'url' => 'http://www.domain.com/exports', ], ], ], ],
需要设置Web服务器来从url
服务dir
中的文件。
更改UI框架
从版本0.6开始,此包旨在支持多个UI框架和多个模板。
当前模板使用template
选项设置,默认值为bootstrap3
。
'app' => [ 'packages' => [ Lagdo\Adminer\Package::class => [ 'template' => 'bootstrap3', 'servers' => [ 'first_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials ], 'second_server' => [ 'name' => '', // The name to be displayed in the dashboard UI 'driver' => '', // mysql, pgsql, sqlite, mongo, oracle, mssql or elastic. 'host' => '', // The database host name or address. 'port' => 0, // The database port 'username' => '', // The database user credentials 'password' => '', // The database user credentials ], ], ], ], ],
以下UI框架得到支持
- Bootstrap 3 (
bootstrap3
) - Bootstrap 4 (
bootstrap4
)
未来版本将添加更多UI框架。
贡献
- 问题追踪器:github.com/lagdo/jaxon-adminer/issues
- 源代码:github.com/lagdo/jaxon-adminer
许可
该项目采用Apache许可证。