26 lines
856 B
PHP
26 lines
856 B
PHP
<?php
|
|
|
|
// Invalidate opcache for config on each request (tiny overhead, ensures version updates)
|
|
$configPath = __DIR__ . '/../config.php';
|
|
if (function_exists('opcache_invalidate')) {
|
|
opcache_invalidate($configPath, true);
|
|
}
|
|
|
|
require_once $configPath;
|
|
require_once __DIR__ . '/Database.php';
|
|
require_once __DIR__ . '/PluginManager.php';
|
|
|
|
// Ensure data directory is writable
|
|
$dataDir = dirname(DB_PATH);
|
|
if (!is_writable($dataDir) && is_dir($dataDir)) {
|
|
http_response_code(500);
|
|
echo 'Data directory is not writable';
|
|
exit(1);
|
|
}
|
|
|
|
// Discover plugins (each subdir of public/plugins/ with a plugin.json)
|
|
$pluginManager = PluginManager::instance();
|
|
$pluginManager->scan(__DIR__ . '/../public/plugins');
|
|
$pluginManager->loadDisabled(dirname(DB_PATH) . '/plugins.json');
|
|
$pluginManager->loadBackends(); // require_once enabled backend.php files
|