Files
KantSites/config/bootstrap.php
T
kantarci 495b26896e
CMS quality / php (8.2) (push) Canceled after 0s
CMS quality / php (8.4) (push) Canceled after 0s
CMS quality / browser (push) Canceled after 0s
CMS quality / mysql (push) Canceled after 0s
Fassung 1.7.0: verlässliche Installation, übersichtliche Verwaltung und bedienbare Bewegung
2026-09-14 10:49:54 +02:00

29 lines
1.2 KiB
PHP

<?php
use App\Ops\Environment;
use Symfony\Component\Dotenv\Dotenv;
require dirname(__DIR__).'/vendor/autoload.php';
$root = dirname(__DIR__);
Environment::prepare($root);
// Server variables are explicit deployment overrides; other .env.* files are never loaded.
$keys = array_keys((new Dotenv())->parse((string) file_get_contents($root.'/.env')));
foreach (array_unique([...$keys, 'APP_ENV', 'APP_DEBUG', 'APP_SECRET', 'DATABASE_URL', 'SITE_ORIGIN', 'MEDIA_DIRECTORY', 'ADMIN_PATH', 'FONT_DIRECTORY', 'ASSET_DIRECTORY']) as $name) {
$value = getenv($name, true);
if (false !== $value && !isset($_SERVER[$name]) && !isset($_ENV[$name])) {
$_SERVER[$name] = $_ENV[$name] = $value;
}
}
(new Dotenv())->load($root.'/.env');
$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $_SERVER['APP_ENV'] ?? 'prod';
$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? '0';
if ('' === ($_SERVER['APP_SECRET'] ?? '')) {
try {
$secret = Environment::ensureSecret($root);
} catch (RuntimeException) {
// Keep the installer reachable: its system check names the missing permission.
$secret = bin2hex(random_bytes(32)).'-nicht-gespeichert';
}
$_SERVER['APP_SECRET'] = $_ENV['APP_SECRET'] = $secret;
}