| 
<?phpdeclare(strict_types=1);
 
 use Airship\Engine\{
 Database,
 Gears,
 State
 };
 
 /**
 * Set up the Database objects from our database.json file
 *
 * @global State $state
 */
 
 $dbgear = Gears::getName('Database');
 $databases = \Airship\loadJSON(
 ROOT . '/config/databases.json'
 );
 $dbPool = [];
 $dbCount = 0;
 
 // Needed for IDE code completion:
 if (IDE_HACKS) {
 $dbgear = new Database(new \PDO('sqlite::memory:'));
 }
 
 /**
 * Initialize all of our database connections:
 */
 foreach ($databases as $label => $dbs) {
 $dbPool[$label] = [];
 foreach ($dbs as $dbConf) {
 if (isset($dbConf['driver']) || isset($dbConf['dsn'])) {
 $conf = [
 isset($dbConf['dsn'])
 ? $dbConf['dsn']
 : $dbConf
 ];
 
 if (isset($dbConf['username']) && isset($dbConf['password'])) {
 $conf[] = $dbConf['username'];
 $conf[] = $dbConf['password'];
 if (isset($dbConf['options'])) {
 $conf[] = $dbConf['options'];
 }
 } elseif (isset($dbConf['options'])) {
 $conf[1] = '';
 $conf[2] = '';
 $conf[3] = $dbConf['options'];
 }
 $dbPool[$label][] = $conf;
 ++$dbCount;
 }
 }
 }
 
 // Cache this array for universal usage
 $state->database_connections = $dbPool;
 
 |