PHPackages                             lagdo/jaxon-adminer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. lagdo/jaxon-adminer

Abandoned → [lagdo/jaxon-dbadmin](/?search=lagdo%2Fjaxon-dbadmin)ArchivedApplication[Database &amp; ORM](/categories/database)

lagdo/jaxon-adminer
===================

Database management dashboard based on Jaxon and Adminer

v0.6.10(4y ago)357[1 issues](https://github.com/lagdo/jaxon-adminer/issues)BSD-3-ClausePHP

Since Mar 27Pushed 4y ago1 watchersCompare

[ Source](https://github.com/lagdo/jaxon-adminer)[ Packagist](https://packagist.org/packages/lagdo/jaxon-adminer)[ Docs](https://github.com/lagdo/jaxon-adminer)[ RSS](/packages/lagdo-jaxon-adminer/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (2)Versions (30)Used By (0)

A database admin dashboard based on Jaxon and Adminer
=====================================================

[](#a-database-admin-dashboard-based-on-jaxon-and-adminer)

**This package is deprecated. See the [Jaxon DbAdmin](https://github.com/lagdo/jaxon-dbadmin) package.**

This package inserts a database admin dashboard into an existing PHP application. Thanks to the [Jaxon library](https://www.jaxon-php.org), it installs and runs in a page of the application. All its operations are performed with Ajax requests.

It is based on [Adminer](https://www.adminer.org/en/), so it will provide the same features. For example, it will be able to manage MySQL, PostgreSQL, Sqlite, MsSQL, MongoDb and Oracle databases.

Features
--------

[](#features)

- Connect to a MySQL database.
- Show basic info about the MySQL database server.
- Show the list of tables in the connected database.
- Show detailed info about the MySQL database server.
- Show detailed info about the connected database.
- Connect to PostgreSQL databases.
- Restrict access to server info and databases.
- Execute requests and display results.
- Export databases to an sql file.
- Import databases from one or more sql files.
- Connect to other database types.
- Add others UI frameworks than Bootstrap, and let the user choose his preferred one (partially implemented, the user can choose between Bootstrap 3 and 4).
- Improve the Adminer code base (work in progress, see the  repo).
- Add tests

Howtos
------

[](#howtos)

This blog post on the `Jaxon` website explains how to install `Jaxon Adminer` on [Voyager](https://voyager-docs.devdojo.com), an admin panel based on the `Laravel` framework: [In english](https://www.jaxon-php.org/blog/2021/03/install-jaxon-adminer-on-voyager.html), and [in french](https://www.jaxon-php.org/blog/2021/03/installer-jaxon-adminer-dans-voyager.html).

Documentation
-------------

[](#documentation)

Install the jaxon library so it bootstraps from a config file and handles ajax requests. Here's the [documentation](https://www.jaxon-php.org/docs/v3x/advanced/bootstrap.html).

Install this package with Composer. If a [Jaxon plugin](https://www.jaxon-php.org/docs/v3x/plugins/frameworks.html) exists for your framework, you can also install it. It will automate the previous step.

Declare the package and the database servers in the `app` section of the [Jaxon configuration file](https://www.jaxon-php.org/docs/v3x/advanced/bootstrap.html).

```
    '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
                    ],
                ],
            ],
        ],
    ],
```

Insert the CSS and javascript codes in the HTML pages of your application using calls to `jaxon()->getCss()` and `jaxon()->getScript(true)`.

In the page that displays the dashboard, insert the HTML code returned by the call to `jaxon()->package(\Lagdo\Adminer\Package::class)->getHtml()`. Two cases are then possible.

- If the dashboard is displayed on a dedicated page, make a call to `jaxon()->package(\Lagdo\Adminer\Package::class)->ready()` in your PHP code when loading the page.
- If the dashboard is loaded with an Ajax request in a page already displayed, execute the javascript code returned the call to `jaxon()->package(\Lagdo\Adminer\Package::class)->getReadyScript()` after the page is loaded.

Additional config options
-------------------------

[](#additional-config-options)

There are other config options that can be used to customize `Jaxon Adminer` operation.

The `default` option sets a database server `Jaxon Adminer` must connect to when it starts.

```
    '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',
            ],
        ],
    ],
```

The `access` options restrict access only to databases or a defined set of databases on any server. If the `access.server` is set to `false` at package level, then the access to all servers information will be forbidden. The `access.server` option can also be set at a server level, and in this case it applies only to that specific 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,
                ],
            ],
        ],
    ],
```

In the above configuration, the user will be able to access server information only on the `second_server`.

The `access.databases` and `access.schemas` options define the set of databases and schemas the user can access. This options can only be defined at server level, and will apply to that specific 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' => false,
                            'databases' => ['db1', 'db2', 'db3'],
                            'schemas' => ['public'],
                        ],
                    ],
                ],
                'default' => 'second_server',
            ],
        ],
    ],
```

In the above configuration, the user will be able to get access only to three databases on the `second_server`, while he will have full access to the `first_server`.

Data import
-----------

[](#data-import)

SQL files can be uploaded and executed on a server. This feature is implemented using the [Jaxon ajax upload](https://www.jaxon-php.org/docs/v3x/registrations/upload.html) feature, which then needs to be configured in the `lib` section of the `Jaxon` config file.

```
    'lib' => [
        'upload' => [
            'files' => [
                'sql_files' => [
                    'dir' => '/path/to/the/upload/dir',
                ],
            ],
        ],
    ],
```

As stated in the [Jaxon ajax upload documentation](https://www.jaxon-php.org/docs/v3x/registrations/upload.html), `sql_files` is the `name` attribute of the file upload field, and of course `/path/to/the/upload/dir` needs to be writable. Other parameters can also be defined to limit the size of the uploaded files or retrict their extensions or mime types.

Data export
-----------

[](#data-export)

Databases can also be exported to various types of files: SQL, CSV, and more. A directory where the exported files are going to be saved must then be defined in the configuration, as well as an url where they can be downloaded.

```
    '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',
                ],
            ],
        ],
    ],
```

The web server needs to be setup to serve the files in the `dir` from `url`.

Change the UI framework
-----------------------

[](#change-the-ui-framework)

Starting from version 0.6, this package is designed to support multiple UI frameworks, and multiple templates.

The current template is set using the `template` option, and it default value is `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
                    ],
                ],
            ],
        ],
    ],
```

The following UI frameworks are supported:

- [Bootstrap 3](https://getbootstrap.com/) (`bootstrap3`)
- [Bootstrap 4](https://getbootstrap.com/) (`bootstrap4`)

More UI frameworks will be added in future releases.

Contribute
----------

[](#contribute)

- Issue Tracker: github.com/lagdo/jaxon-adminer/issues
- Source Code: github.com/lagdo/jaxon-adminer

License
-------

[](#license)

The project is licensed under the Apache license.

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

29

Last Release

1710d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ebb668d7515d81741c86e42cf3194f5623636fbb15dd5412e26ea8320865d229?d=identicon)[lagdo](/maintainers/lagdo)

---

Top Contributors

[![feuzeu](https://avatars.githubusercontent.com/u/15174329?v=4)](https://github.com/feuzeu "feuzeu (172 commits)")

---

Tags

elasticsearchmysqlsqlitepostgresqlsqlmssqloracleajaxdashboardadminerJaxonMondoDb

### Embed Badge

![Health badge](/badges/lagdo-jaxon-adminer/health.svg)

```
[![Health](https://phpackages.com/badges/lagdo-jaxon-adminer/health.svg)](https://phpackages.com/packages/lagdo-jaxon-adminer)
```

###  Alternatives

[doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.

9.7k578.4M5.6k](/packages/doctrine-dbal)[catfan/medoo

The lightweight PHP database framework to accelerate development

4.9k1.5M193](/packages/catfan-medoo)[dg/adminer-custom

Customization for Adminer, the best database management tool written in PHP.

134765.7k16](/packages/dg-adminer-custom)[moharrum/laravel-adminer

Adminer database management tool for your Laravel application.

451.0k](/packages/moharrum-laravel-adminer)[dg/adminer

Customization for Adminer, the best database management tool written in PHP.

1342.5k](/packages/dg-adminer)[ramadan/easy-model

A Laravel package for enjoyably managing database queries.

101.6k](/packages/ramadan-easy-model)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
