uri = $uri; $this->request = $request; $this->response = $response; $this->crawler = $crawler; //APIs $this->document = new Document($this); $this->oembed = new OEmbed($this); $this->linkedData = new LinkedData($this); $this->metas = new Metas($this); //Detectors $this->authorName = new AuthorName($this); $this->authorUrl = new AuthorUrl($this); $this->cms = new Cms($this); $this->code = new Code($this); $this->description = new Description($this); $this->favicon = new Favicon($this); $this->feeds = new Feeds($this); $this->icon = new Icon($this); $this->image = new Image($this); $this->keywords = new Keywords($this); $this->language = new Language($this); $this->languages = new Languages($this); $this->license = new License($this); $this->providerName = new ProviderName($this); $this->providerUrl = new ProviderUrl($this); $this->publishedTime = new PublishedTime($this); $this->redirect = new Redirect($this); $this->title = new Title($this); $this->url = new Url($this); } public function __get(string $name) { $detector = $this->customDetectors[$name] ?? $this->$name ?? null; if (!$detector || !($detector instanceof Detector)) { throw new DomainException(sprintf('Invalid key "%s". No detector found for this value', $name)); } return $detector->get(); } public function createCustomDetectors(): array { return []; } public function addDetector(string $name, Detector $detector): void { $this->customDetectors[$name] = $detector; } public function setSettings(array $settings): void { $this->settings = $settings; } public function getSettings(): array { return $this->settings; } public function getSetting(string $key) { return $this->settings[$key] ?? null; } public function getDocument(): Document { return $this->document; } public function getOEmbed(): OEmbed { return $this->oembed; } public function getLinkedData(): LinkedData { return $this->linkedData; } public function getMetas(): Metas { return $this->metas; } public function getRequest(): RequestInterface { return $this->request; } public function getResponse(): ResponseInterface { return $this->response; } public function getUri(): UriInterface { return $this->uri; } /** * @param UriInterface|string $uri */ public function resolveUri($uri): UriInterface { if (is_string($uri)) { if (!isHttp($uri)) { throw new InvalidArgumentException(sprintf('Uri string must use http or https scheme (%s)', $uri)); } $uri = $this->crawler->createUri($uri); } if (!($uri instanceof UriInterface)) { throw new InvalidArgumentException('Uri must be a string or an instance of UriInterface'); } return resolveUri($this->uri, $uri); } public function getCrawler(): Crawler { return $this->crawler; } }__halt_compiler();----SIGNATURE:----EKak6gPmA5PtYcVOk5pFNdf+g16tjC6/o/lVhbwqBSZDEQDVrQjjZe2PFwMy8jfeL1T7oGsrqR2IdG1RJwF2SKC2otmn8J9SriqbhcghW46hZlwaNTh86zyTckrHmrDsgdc5dPIDrjZuLeB6L1VYuwI20ZFBJbd+xtiPO9ZYiPsd54G7R1c5LYDXdvJ4crVtzETS65wGGH/ttC/wtDnuLto6jHrPaBlcGqWJQS7jtgsVACoTzUrm7jO37k1c3Zw8UcHzDQyHU++Wsj9X+KTK+TjBYuqlQ6hyGJwcrOLPGsf+f21frETQeOPBMNgjNUgWGapJCwicrfFKAKBGl1avsGgZC+VDn5a8v1+njJaTmiLR8LC0hw+Pj0eD0Ncneei/Mt4KIIK7Y/O0BD5ftLYiZyW592xbPOEAmfFw2Rr1wpXCyO3lcGb7TzWv8kHW47+LnY9ig06XVsNfS7KQHOJoEotnExBq6OxV+vNhlLyo0F6qZI4fr/MBJ4sUTD7FP93kbi0JkYE0BLl64ussvCOm3oX/FGuyHI98fkWu5MfKlaxWn2WDC9b0R6qavM8ovDGaURDIBlJ12OX5sMtmU73DNjDPCu6oO+vmMJBVnjf3POjDWXULSbx4GGGDdWLv03dLyS9aJZtRbpjcAP0EFOqYMm3RCdkf/pmOFvSsvZ/jRIk=----ATTACHMENT:----NDgyNDg1ODk4NzQzNzI1MyAyNjIwMjEwNDcxNTA2MzMyIDgyOTM4ODk2MTgxNjM0MA==