<?php
/**
* HTTPリクエストをラップするクラス
*
* PHP version 5
*
* @package    core
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

class HttpRequest implements IRequest
{
	var $_data;
	var $_url;

	/*
	 *    コンストラクタ
	 */
	public function __construct()
	{
		$this->_data  = array_merge( $_GET, $_POST );

		$url_string = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];

		$this->_url = new URL($url_string);

//		unset( $_POST );
//		unset( $_GET );
	}

	/*
	 *    URLを取得
	 */
	public function getURL()
	{
		return $this->_url;
	}

	/*
	 *    キー一覧を取得
	 */
	public function getKeys()
	{
		return array_keys( $this->_data );
	}

	/*
	 *    パラメータを取得
	 */
	public function get( $key )
	{
		return isset( $this->_data[$key] ) ? $this->_data[$key] : NULL;
	}

	/*
	 *    パラメータを設定
	 */
	public function set( $key, $value )
	{
		$this->_data[ $key ] = $value;
	}

	/*
	 * ダンプ
	 */
	public function dump()
	{
		print "----------[ Request ]---------------<BR>";
		array_dump( $this->_data );
	}

	/*
	 * 文字列化
	 */
	public function __toString()
	{
		$str = "[Request]<BR>" . System::arrayToString( $this->_data );
		return $str;
	}
}
