lagdo / jaxon-dbadmin
基于Jaxon和Adminer的数据库管理仪表板
Requires
- php: >=7.1.0
- ext-iconv: *
- ext-json: *
- jaxon-php/jaxon-annotations: ^2.2
- jaxon-php/jaxon-core: ^4.6
- jaxon-php/jaxon-dialogs: ^4.0
- lagdo/dbadmin-driver: ^0.8
- lagdo/ui-builder: ^0.1
Requires (Dev)
- behat/behat: ^3.10
- dvdoug/behat-code-coverage: 5.0.*
- php-coveralls/php-coveralls: ^2.5
- phpunit/phpcov: ^8.2
- phpunit/phpunit: ^9.5
- dev-main
- v1.0-alpha.6
- v1.0-alpha.5
- v1.0-alpha.4
- v1.0-alpha.3
- v1.0-alpha.2
- v1.0-alpha.1
- v0.13.5
- v0.13.4
- v0.13.3
- v0.13.2
- v0.13.1
- v0.13.0
- v0.12.0
- v0.11.1
- v0.11.0
- v0.10.5
- v0.10.4
- v0.10.3
- v0.10.2
- 0.10.1
- v0.10.0
- v0.9.1
- v0.9.0
- v0.8.6
- v0.8.5
- v0.8.4
- v0.8.3
- 0.8.2
- v0.8.1
- v0.8.0
- v0.7.3
- v0.7.2
- v0.7.1
- v0.7.0
- v0.6.10
- v0.6.9
- v0.6.8
- v0.6.7
- v0.6.6
- v0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.1
- v0.5.0
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.0
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-features/html-builder
- dev-html-builder-bootstrap
This package is auto-updated.
Last update: 2024-09-06 22:52:13 UTC
README
基于Jaxon和Adminer的数据库管理仪表板
本包基于Adminer。
它将数据库管理仪表板插入现有的PHP应用程序中。感谢Jaxon库,它可以在应用程序的一页中安装和运行。所有操作都通过Ajax请求执行。
安装方法
在Jaxon网站上的一篇博客文章解释了如何在基于Laravel框架的Voyager管理员面板上安装Jaxon DbAdmin
:英文和法文。
Jaxon DbAdmin和Voyager
https://github.com/lagdo/dbadmin-voyager存储库提供了一个现成的包,使用Voyager管理员仪表板和包含的Jaxon DbAdmin
。
还安装了PostgreSQL、MySQL和SQLite的驱动程序包,因此用户只需在配置文件中添加其数据库。
文档
安装Jaxon库,使其从配置文件启动并处理Ajax请求。这里是文档。
使用Composer安装此包。如果您的框架存在Jaxon插件,您也可以安装它。它将自动化前面的步骤。
数据库驱动程序
安装您需要管理的数据库服务器的驱动程序包。以下驱动程序可用
- MySQL: https://github.com/lagdo/dbadmin-driver-mysql
- PostgreSQL: https://github.com/lagdo/dbadmin-driver-pgsql
- SQLite: https://github.com/lagdo/dbadmin-driver-sqlite
在Jaxon配置文件的app
部分声明包和数据库服务器。
查看特定数据库服务器的选项,请参阅相应的数据库驱动程序包。
'app' => [ // Other config options // ... 'packages' => [ Lagdo\DbAdmin\Package::class => [ 'servers' => [ // The database servers 'pgsql_server' => [ // A unique identifier for this server 'driver' => 'pgsql', 'name' => '', // The name to be displayed in the dashboard UI. 'host' => '', // The database host name or address. 'port' => 0, // The database port. Optional. 'username' => '', // The database user credentials. 'password' => '', // The database user credentials. ], 'mysql_server' => [ // A unique identifier for this server 'driver' => 'mysql', 'name' => '', // The name to be displayed in the dashboard UI. 'host' => '', // The database host name or address. 'port' => 0, // The database port. Optional. 'username' => '', // The database user credentials. 'password' => '', // The database user credentials. ], ], ], ], ],
使用对Jaxon\jaxon()->getCss()
和Jaxon\jaxon()->getScript(true)
的调用,将CSS和javascript代码插入到您应用程序的HTML页面中。
在显示仪表板的页面中,插入由调用Jaxon\jaxon()->package(\Lagdo\DbAdmin\Package::class)->getHtml()
返回的HTML代码。然后有两种可能的情况。
-
如果仪表板显示在专用页面上,则在加载页面时,在您的PHP代码中调用
Jaxon\jaxon()->package(\Lagdo\DbAdmin\Package::class)->ready()
。 -
如果仪表板在一个已显示的页面中使用Ajax请求加载,则在页面加载后,执行返回的javascript代码
Jaxon\jaxon()->package(\Lagdo\DbAdmin\Package::class)->getReadyScript()
。
UI构建器
此包使用HTML UI构建器来为各种前端框架构建UI组件。还必须安装正在使用的UI框架的包。以下是一些可用的构建器:
- Bootstrap 3, 4 和 5: https://github.com/lagdo/ui-builder-bootstrap
在上面的示例中,UI将使用Bootstrap3组件构建。
'app' => [ 'packages' => [ Lagdo\DbAdmin\Package::class => [ 'template' => 'bootstrap3', ], ], ],
附加配置选项
还有一些其他配置选项可以用于自定义 Jaxon DbAdmin
的操作。
default
选项设置 Jaxon DbAdmin
启动时必须连接到的数据库服务器。
'app' => [ 'packages' => [ Lagdo\DbAdmin\Package::class => [ 'servers' => [ // The database servers ], 'default' => 'server_id', ], ], ],
访问限制
access
部分提供了一些选项来限制对任何服务器上数据库的访问。
如果包级别上设置 access.server
选项为 false
,则将禁止所有服务器的信息访问,并且用户只能访问数据库内容。access.server
选项也可以在服务器级别设置,在这种情况下,它仅适用于该特定服务器。
'app' => [ 'packages' => [ Lagdo\DbAdmin\Package::class => [ 'servers' => [ // The database servers 'server_id' => [ // Database options 'access' => [ 'server' => true, ], ], ], 'default' => 'server_id', 'access' => [ 'server' => false, ], ], ], ],
在此配置中,用户将只能访问ID为 server_id
的服务器上的信息。
access.databases
和 access.schemas
选项定义了用户可以访问的数据库和模式集合。这些选项只能在服务器级别定义,并将应用于该特定服务器。如果服务器提供了该功能,则 access.schemas
选项将仅适用于服务器。
'app' => [ 'packages' => [ Lagdo\DbAdmin\Package::class => [ 'servers' => [ // The database servers 'server_id' => [ // Database options 'access' => [ 'server' => false, 'databases' => ['db1', 'db2', 'db3'], 'schemas' => ['public'], ], ], ], 'default' => 'server_id', ], ], ],
在此配置中,用户将只能访问ID为 server_id
的服务器上的三个数据库。
自定义包配置
应用程序管理员可能需要根据连接的用户帐户或组自定义访问参数。
在这种情况下,可以使用 provider
选项来定义一个返回作为数组的访问选项的可调用函数,然后将其用于配置包。
定义的选项传递给可调用函数,因此可以使用它作为构建自定义配置的基础。
$dbAdminOptionsGetter = function($config) { $config['servers']['server_mysql'] = [ 'driver' => 'mysql', 'name' => '', // The name to be displayed in the dashboard UI. 'host' => '', // The database host name or address. 'port' => 0, // The database port. Optional. 'username' => '', // The database user credentials. 'password' => '', // The database user credentials. ]; $config['servers']['server_pgsql'] = [ 'driver' => 'pgsql', 'name' => '', // The name to be displayed in the dashboard UI. 'host' => '', // The database host name or address. 'port' => 0, // The database port. Optional. 'username' => '', // The database user credentials. 'password' => '', // The database user credentials. ]; return $config; };
'app' => [ // Other config options // ... 'packages' => [ Lagdo\DbAdmin\Package::class => [ // A callable that return the access options. 'provider' => $dbAdminOptionsGetter, 'template' => 'bootstrap3', 'servers' => [], 'default' => 'server_mysql', 'access' => [ 'server' => false, ], ], ], ],
调试控制台输出
从版本 0.9.0
开始,如果将 debug.queries
选项设置为 true,则执行的可执行SQL查询也可以打印到浏览器调试控制台。
'app' => [ 'packages' => [ Lagdo\DbAdmin\Package::class => [ 'debug' => [ 'queries' => true, ], 'servers' => [ // The database servers ], ], ], ],
数据导入
可以将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\DbAdmin\Package::class => [ 'servers' => [ // The database servers ], 'export' => [ 'dir' => '/path/to/the/export/dir', 'url' => 'http://www.domain.com/exports', ], ], ], ],
需要设置Web服务器,以便从URL url
中的 dir
目录提供文件。
贡献
- 问题跟踪器:github.com/lagdo/jaxon-dbadmin/issues
- 源代码:github.com/lagdo/jaxon-dbadmin
许可证
该项目受Apache许可证许可。