You are here

Response.php in Zircon Profile 8.0

File

vendor/symfony/browser-kit/Response.php
View source
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace Symfony\Component\BrowserKit;


/**
 * Response object.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class Response {
  protected $content;
  protected $status;
  protected $headers;

  /**
   * Constructor.
   *
   * The headers array is a set of key/value pairs. If a header is present multiple times
   * then the value is an array of all the values.
   *
   * @param string $content The content of the response
   * @param int    $status  The response status code
   * @param array  $headers An array of headers
   */
  public function __construct($content = '', $status = 200, array $headers = array()) {
    $this->content = $content;
    $this->status = $status;
    $this->headers = $headers;
  }

  /**
   * Converts the response object to string containing all headers and the response content.
   *
   * @return string The response with headers and content
   */
  public function __toString() {
    $headers = '';
    foreach ($this->headers as $name => $value) {
      if (is_string($value)) {
        $headers .= $this
          ->buildHeader($name, $value);
      }
      else {
        foreach ($value as $headerValue) {
          $headers .= $this
            ->buildHeader($name, $headerValue);
        }
      }
    }
    return $headers . "\n" . $this->content;
  }

  /**
   * Returns the build header line.
   *
   * @param string $name  The header name
   * @param string $value The header value
   *
   * @return string The built header line
   */
  protected function buildHeader($name, $value) {
    return sprintf("%s: %s\n", $name, $value);
  }

  /**
   * Gets the response content.
   *
   * @return string The response content
   */
  public function getContent() {
    return $this->content;
  }

  /**
   * Gets the response status code.
   *
   * @return int The response status code
   */
  public function getStatus() {
    return $this->status;
  }

  /**
   * Gets the response headers.
   *
   * @return array The response headers
   */
  public function getHeaders() {
    return $this->headers;
  }

  /**
   * Gets a response header.
   *
   * @param string $header The header name
   * @param bool   $first  Whether to return the first value or all header values
   *
   * @return string|array The first header value if $first is true, an array of values otherwise
   */
  public function getHeader($header, $first = true) {
    $normalizedHeader = str_replace('-', '_', strtolower($header));
    foreach ($this->headers as $key => $value) {
      if (str_replace('-', '_', strtolower($key)) === $normalizedHeader) {
        if ($first) {
          return is_array($value) ? count($value) ? $value[0] : '' : $value;
        }
        return is_array($value) ? $value : array(
          $value,
        );
      }
    }
    return $first ? null : array();
  }

}

Classes

Namesort descending Description
Response Response object.