- App\Support\StructuredData: Portal-Organization als Publisher mit @id und Logo (ImageObject), Newsroom-@id; NewsArticle.author auf der Meldung und Organization auf der Newsroom-Seite beschreiben jetzt dieselbe Entitaet. Startseiten nutzen denselben Publisher. - /sitemap-news.xml je Spoke (NewsSitemapController): im Archiv sichtbare Meldungen der letzten 48 h, max. 1.000, news:publication mit Portalname und Sprache; 15 min gecacht, mit den anderen Sitemaps geleert; in robots.txt der Spokes. Hub liefert leere Liste. - /llms.txt je Host (LlmsTxtController): sachliche Beschreibung, URL-Aufbau, aktive Kategorien, Seiten fuer Unternehmen, Rechtliches; Hub verweist auf beide Portale. Keine Aussagen ueber KI-Nennungen. - Protokoll Teil 5 (Block 2) inkl. Betreiber-Schritten fuer das Publisher Center und Befund zu 2.5/E5; Roadmap 2.1/2.7 abgehakt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
40 lines
1.2 KiB
PHP
40 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Support;
|
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
/**
|
|
* Invalidierung der Web-Auslieferungs-Caches nach Inhalts-Mutationen
|
|
* (Meldeverfahren: Korrektur, Anonymisierung, Depublizierung).
|
|
*/
|
|
class WebCaches
|
|
{
|
|
/**
|
|
* Kompletter Auslieferungs-Cache nach einer Entfernung: Sitemaps UND alle
|
|
* Seiten-Caches (Ticker, Startseite, Kategorie-, Newsroom- und Suchlisten).
|
|
* Ohne den zweiten Teil bliebe eine entfernte Meldung bis zu einer Stunde
|
|
* in gecachten Listen sichtbar.
|
|
*/
|
|
public static function forgetPublicPages(): void
|
|
{
|
|
self::forgetSitemaps();
|
|
WebPageCache::flush();
|
|
}
|
|
|
|
/**
|
|
* Sitemap-Caches aller Hosts verwerfen (SitemapController cached 1h je
|
|
* Host) — nach einer Mutation darf kein Cache den alten Stand halten.
|
|
*/
|
|
public static function forgetSitemaps(): void
|
|
{
|
|
foreach ((array) config('domains.domains', []) as $domain) {
|
|
$host = parse_url((string) ($domain['url'] ?? ''), PHP_URL_HOST);
|
|
|
|
if ($host) {
|
|
Cache::forget('web.sitemap.'.$host);
|
|
Cache::forget('web.sitemap-news.'.$host);
|
|
}
|
|
}
|
|
}
|
|
}
|