<?php
/**
 * Part of the Joomla Framework Http Package
 *
 * @copyright  Copyright (C) 2005 - 2021 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE
 */

namespace Joomla\Http;

use Laminas\Diactoros\Response as PsrResponse;

/**
 * HTTP response data object class.
 *
 * @property-read  string   $body     The response body as a string
 * @property-read  integer  $code     The status code of the response
 * @property-read  array    $headers  The headers as an array
 *
 * @since  1.0
 */
class Response extends PsrResponse
{
	/**
	 * Magic getter for backward compatibility with the 1.x API
	 *
	 * @param   string  $name  The variable to return
	 *
	 * @return  mixed
	 *
	 * @since   2.0.0
	 * @deprecated  3.0  Access data via the PSR-7 ResponseInterface instead
	 */
	public function __get($name)
	{
		switch (strtolower($name))
		{
			case 'body':
				return (string) $this->getBody();

			case 'code':
				return $this->getStatusCode();

			case 'headers':
				return $this->getHeaders();

			default:
				$trace = debug_backtrace();

				trigger_error(
					sprintf(
						'Undefined property via __get(): %s in %s on line %s',
						$name,
						$trace[0]['file'],
						$trace[0]['line']
					),
					E_USER_NOTICE
				);

				break;
		}
	}
}
