getFieldName())) { throw new Exception\InvalidArgumentException( 'Invalid header line for "' . $dateHeader->getFieldName() . '" header string' ); } if (is_numeric($date)) { $dateHeader->setDeltaSeconds($date); } else { $dateHeader->setDate($date); } return $dateHeader; } /** * Set number of seconds * * @param int $delta * @return $this */ public function setDeltaSeconds($delta) { $this->deltaSeconds = (int) $delta; return $this; } /** * Get number of seconds * * @return int */ public function getDeltaSeconds() { return $this->deltaSeconds; } /** * Get header name * * @return string */ public function getFieldName() { return 'Retry-After'; } /** * Returns date if it's set, or number of seconds * * @return int|string */ public function getFieldValue() { return ($this->date === null) ? $this->deltaSeconds : $this->getDate(); } /** * Return header line * * @return string */ public function toString() { return 'Retry-After: ' . $this->getFieldValue(); } }