*/ private array $antworten = []; /** @var list */ public array $abgefragt = []; public function serve(string $url, string $inhalt): void { $this->antworten[$url] = $inhalt; } /** Legt ein vollständiges Release ab: Releaseliste, Archiv und Prüfsumme. */ public function release(string $base, string $api, string $version, string $archiv, ?string $checksum = null): void { $this->serve($api.'/releases/latest', json_encode(['tag_name' => 'v'.$version], JSON_THROW_ON_ERROR)); $this->serve(sprintf('%s/v%s/kantsites-%s.zip', $base, $version, $version), $archiv); $this->serve(sprintf('%s/v%s/kantsites-%s.zip.sha256', $base, $version, $version), sprintf( "%s kantsites-%s.zip\n", $checksum ?? hash('sha256', $archiv), $version, )); } public function get(string $url): ?string { $this->abgefragt[] = $url; return $this->antworten[$url] ?? null; } /** Wie get(), nur in eine Datei - der Updater laedt das Archiv so, ohne es in den Speicher zu nehmen. */ public function toFile(string $url, string $path): bool { $inhalt = $this->get($url); if (null === $inhalt) { return false; } return false !== file_put_contents($path, $inhalt); } }