PHPackages                             pwerken/va-void - 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. pwerken/va-void

ActiveProject[Database &amp; ORM](/categories/database)

pwerken/va-void
===============

Vortex Adventures - Vortex Online Incharacter Database

03PHP

Since Jun 19Pushed 6d ago1 watchersCompare

[ Source](https://github.com/pwerken/va-void)[ Packagist](https://packagist.org/packages/pwerken/va-void)[ RSS](/packages/pwerken-va-void/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (2)Used By (0)

[![License](https://camo.githubusercontent.com/6251e94944ee65445df15fed1a0dda5ec2bc255fa62274a270e16c413b23e790/68747470733a2f2f696d672e736869656c64732e696f2f3a6c6963656e73652d4953432d626c75652e737667)](LICENSE.txt)[![CakePHP](https://camo.githubusercontent.com/00c8dd238193340a37ae5fa5b23eec7d4c911d70a8528ff6557548101c8429af/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706f776572656425323062792d43616b655048502d7265642e737667)](https://cakephp.org)

VA - VOID
=========

[](#va---void)

[Vortex Adventues](http://www.the-vortex.nl) - **V**ortex **O**nline **I**ncharacter **D**atabase

Install
-------

[](#install)

Download [Composer](https://getcomposer.org/doc/00-intro.md) or update `composer self-update`.

1. Clone the repository
2. Run `composer install`
    If this didn't create the `config/app.php` (or set folder permissions), then run this command again.
3. Run `./bin/cake admin checks`
    - Fix everything it reports as NOT ok (the red lines).
    - This mostly consists of reading and editing `config/app.php`.
    - There you need to setup the `'Datasources'` and any other configuration relevant for your site.
    - The database tables can be created with Migrations `./bin/cake migrations migrate`
4. Configure apache to serve the `webroot` folder.
    Example apache vhost.conf: ```

        ServerName api.your.domain
        DocumentRoot /var/www/void/webroot

            Options FollowSymLinks
            AllowOverride None

            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all

        CustomLog ${APACHE_LOG_DIR}/access.void.log combined

    ```
5. Browse to /admin/checks
    - Again, fix everything it reports as NOT ok.
6. Optionally: load some initial database content with `./bin/cake migrations seed`

Update
------

[](#update)

1. `./bin/cake backup export`
    - Make a backup of your data.
2. `git pull`
    - Retrieves the latest code
3. `composer update`
    - Installs/updates package dependencies.
    - This is required if `composer.json` was modified, otherwise it is still recommended.
4. `./bin/cake migrations migrate`
    - Updates the database table structure(s).
5. `./bin/cake backup export`
    - Optionaly: create a backup before resuming regular usage/operations.

Database backups
----------------

[](#database-backups)

Database backups can be listed, exported and imported using the CLI.

- `./bin/cake backup` lists all the database backups present.
- `./bin/cake backup export [description]` will created a new backup file.
- `./bin/cake backup import ` Import a backup (or any other) sql file.

This tool uses the commandline mysql and mysqldump commands internally.
The created backup files are stored in the `backups/` folder.

**Warning**: old backups might not be compatible with newer tables structures. It is possible to use `cake migrations` to revert to an earlier database structure. Don't forget to save your data / make a backup before doing this!

Social provider login
---------------------

[](#social-provider-login)

Call the `/auth/OAuth2` api endpoint to get the list of all supported social login providers. For each provider the result contains a `loginRedirect` and `urlLoginCode` link. Both need to be customized by the front-end before they can be used.

1. First in the `loginRedirect` replace the `STATE` and `CALLBACK` strings:

    - `STATE` should be a random string used to prevent cross-site request forgery
    - `CALLBACK` is the front-end url where the user gets redirect to after login
2. Now redirect the user to this modified `loginRedirect` to start the login proces.
3. On succesful login the user gets redirected to the `CALLBACK` location.
4. Check that the returned `state` query parameter matches with the earlier provided `STATE` value.
5. In the `urlLoginCode` of the social provider replace `CODE` and `CALLBACK`:

    - `CODE` with the `code` string we got in the query parameter after the login
    - `CALLBACK` must be the same as used in the `loginRedirect`
6. Perform a GET on the modified `urlLoginCode`. This should yield the same result as a regular user+name password. The result contains a JWT that can be used for all following interactions with the void api. Similar, a failed login will result in a 401 error response.

 ```
sequenceDiagram
    participant B as Browser
    participant C as Client App
    participant A as VOID Api
    participant P as Provider

B-)+C: get login page
activate B
C-)+A: (0) HTTP GET /auth/OAuth2
A--)-C: list of providers, each with "loginRedirect" and "urlLoginCode"
C->>C: (1) replace STATE and CALLBACK in "loginRedirect"
C--)-B: login page
B->>B: user selects login provider
B-)+P: (2) redirect to modified "loginRedirect"
P--)B: login page
B-)P: user authenticates
P--)-B: (3) redirect to CALLBACK with CODE and STATE
B-)+C:
C->>C: (4) check STATE is unmodified
C->>C: (5) replace CODE and CALLBACK in "urlLoginCode"
C-)+A: (6) GET "urlLoginCode"
A-)+P: verify CODE
P-)-A: user information
A->>A: find player plin
A--)-C: provide JWT
Note over C,A: use JWT to access VOID Api as user
C-)+A: GET /players/
A--)-C:
C--)-B: ...
deactivate B
```

      Loading

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance64

Regular maintenance activity

Popularity3

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 Bus Factor1

Top contributor holds 99.7% 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/482156?v=4)[Peter van de Werken](/maintainers/pwerken)[@pwerken](https://github.com/pwerken)

---

Top Contributors

[![pwerken](https://avatars.githubusercontent.com/u/482156?v=4)](https://github.com/pwerken "pwerken (1018 commits)")[![kalizec](https://avatars.githubusercontent.com/u/6470421?v=4)](https://github.com/kalizec "kalizec (1 commits)")[![wiensmit](https://avatars.githubusercontent.com/u/6747711?v=4)](https://github.com/wiensmit "wiensmit (1 commits)")[![ylebre](https://avatars.githubusercontent.com/u/10849937?v=4)](https://github.com/ylebre "ylebre (1 commits)")

### Embed Badge

![Health badge](/badges/pwerken-va-void/health.svg)

```
[![Health](https://phpackages.com/badges/pwerken-va-void/health.svg)](https://phpackages.com/packages/pwerken-va-void)
```

###  Alternatives

[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k116.5M113](/packages/jdorn-sql-formatter)[propel/propel1

Propel is an open-source Object-Relational Mapping (ORM) for PHP5.

8351.6M87](/packages/propel-propel1)[jfelder/oracledb

Oracle DB driver for Laravel

11518.4k](/packages/jfelder-oracledb)

PHPackages © 2026

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