> */ private static array $parsers = [ VrtHomepageParserAdapter::class, BelgaHomepageParserAdapter::class, ]; /** * @throws Exception */ public static function getParser(string $url): HomepageParserInterface { foreach (self::$parsers as $parserClass) { $parser = new $parserClass(); if ($parser->canParse($url)) { return $parser; } } throw new Exception("No homepage parser found for URL: {$url}"); } public static function getParserForFeed(Feed $feed): ?HomepageParserInterface { if (!$feed->provider) { return null; } $providerConfig = config("feed.providers.{$feed->provider}"); if (!$providerConfig || !isset($providerConfig['parsers']['homepage'])) { return null; } $parserClass = $providerConfig['parsers']['homepage']; if (!class_exists($parserClass)) { return null; } return new $parserClass(); } }