Zieht Quellcode + DB-Migrationen über einen HTTP-Update-Proxy nach. Vollständig isoliert: eigener Namespace Updater\, eigener Autoloader, eigene Settings (updater/storage/updater-settings.json), eigenes Migrations-System (_updater_migrations), eigener AuditLogger. Komponenten (alle in updater/): - UpdateManager: Version/.version, Maintenance, Progress, checkForUpdates, installUpdate (Staging + PROTECTED_PATHS + Migrationen + opcache + finally) - MigrationRunner: MySQL-Tracking, string-/kommentar-bewusster SQL-Splitter, isIgnorableSqlError, 60s-Lockfile-Cache - UpdateController + admin/update.php (dünner Entry-Shim), Inline-Admin-UI mit Channel-Selector, Update-Check, Progress-Bar, Migrations-Tab - UpdaterFactory (zentraler Channel-Fallback), AuditLogger (audit_log) - Templates: maintenance.html, update.php; routes.php (Doku) - README.md mit vollständiger Rückbau-Anleitung Einzige Bestandscode-Änderung: 4-Zeilen-Maintenance-Hook in index.php (markiert mit "// Updater maintenance hook"). Proxy: update.loheide.eu/openvouchertool[-development]
23 lines
710 B
PHP
23 lines
710 B
PHP
<?php
|
||
/**
|
||
* Updater-Bootstrap.
|
||
*
|
||
* Registriert einen minimalen Autoloader fuer den `Updater\`-Namespace.
|
||
* Das Projekt hat keinen Composer/PSR-4-Autoloader – dieser Loader ist
|
||
* vollstaendig isoliert und beeinflusst bestehende require-Aufrufe nicht.
|
||
*
|
||
* Beim Rueckbau des Updaters genuegt es, den Ordner `updater/` zu loeschen;
|
||
* dieser Autoloader verschwindet damit ebenfalls.
|
||
*/
|
||
|
||
spl_autoload_register(function ($class) {
|
||
$prefix = 'Updater\\';
|
||
if (strpos($class, $prefix) !== 0) {
|
||
return;
|
||
}
|
||
$relative = substr($class, strlen($prefix));
|
||
$file = __DIR__ . '/' . str_replace('\\', '/', $relative) . '.php';
|
||
if (is_file($file)) {
|
||
require_once $file;
|
||
}
|
||
});
|