url = $url; $this->client = new Client([ 'timeout' => 60, 'verify' => false, 'headers' => [ 'user-agent' => 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; D5803 Build/MOB30M.Z1)', ], ]); } /** * @param string $url * * @return \App\Parser|null */ public static function factory(string $url): ?Parser { $parsers = Config::get('parser.parsers', []); foreach ($parsers as $domain => $parser) { if (false !== strpos($url, $domain)) { return new $parser($url); } } return null; } /** * @return \App\ParsedHome */ abstract public function parse(): ParsedHome; }