/** * Create response from string * * @param string $string * * @return $this */ public static function fromString($string) { /** @var Discover $message */ $message = new static(); foreach (explode(PHP_EOL, trim($string)) as $line) { $tuple = explode(':', trim($line), 2); if (2 == count($tuple)) { $value = trim(array_pop($tuple)); switch (strtoupper(array_pop($tuple))) { case 'CACHE-CONTROL': $message->setLifetime(intval(substr($value, strpos($value, '=') + 1))); break; case 'DATE': $message->setDate(new DateTime($value)); break; case 'LOCATION': $message->setDescriptionUrl(Url::factory($value)); break; case 'SERVER': $message->setServerString($value); break; case 'ST': $message->setSearchTarget(SearchTarget::fromString($value)); break; case 'USN': $message->setUniqueServiceName(UniqueServiceName::fromString($value)); break; } } } return $message; }
/** * Get search target * * @return SearchTarget */ public function getSearchTarget() { if (is_null($this->searchTarget)) { return SearchTarget::fromString(); } return $this->searchTarget; }
/** * Get search target * * @return SearchTarget */ public function getSearchTarget() { if (null === $this->searchTarget) { return SearchTarget::fromString(self::DEFAULT_SEARCH_TARGET); } return $this->searchTarget; }