48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
$database = [
|
|
'host' => (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') ? 'localhost' : 'postgres_db',
|
|
'port' => '5432',
|
|
'name' => 'warner',
|
|
'user' => 'postgres',
|
|
'password' => 'secret',
|
|
'sslmode' => 'prefer',
|
|
];
|
|
|
|
$databaseUrl = getenv('DATABASE_URL');
|
|
if (is_string($databaseUrl) && $databaseUrl !== '') {
|
|
$parsed = parse_url($databaseUrl);
|
|
if (is_array($parsed) && in_array(($parsed['scheme'] ?? ''), ['postgres', 'postgresql'], true)) {
|
|
$database['host'] = (string) ($parsed['host'] ?? $database['host']);
|
|
$database['port'] = (string) ($parsed['port'] ?? $database['port']);
|
|
$database['name'] = ltrim((string) ($parsed['path'] ?? ''), '/') ?: $database['name'];
|
|
$database['user'] = (string) ($parsed['user'] ?? $database['user']);
|
|
$database['password'] = (string) ($parsed['pass'] ?? $database['password']);
|
|
|
|
if (!empty($parsed['query'])) {
|
|
parse_str($parsed['query'], $query);
|
|
if (is_array($query) && isset($query['sslmode'])) {
|
|
$database['sslmode'] = (string) $query['sslmode'];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$appUrl = getenv('APP_URL');
|
|
if (!is_string($appUrl) || $appUrl === '') {
|
|
$appUrl = 'http://localhost/warner/';
|
|
}
|
|
|
|
return [
|
|
'app' => [
|
|
'name' => 'Spreadsheet Importer',
|
|
'url' => rtrim($appUrl, '/') . '/',
|
|
],
|
|
'import' => [
|
|
'chunk_size' => 100,
|
|
],
|
|
'database' => $database,
|
|
];
|