Route.php 1.96 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
<?php
/*
	Question2Answer by Gideon Greenspan and contributors
	http://www.question2answer.org/

	This program is free software; you can redistribute it and/or
	modify it under the terms of the GNU General Public License
	as published by the Free Software Foundation; either version 2
	of the License, or (at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	More about this license: http://www.question2answer.org/license.php
*/

19
namespace Q2A\Http;
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

class Route
{
	/** @var string */
	private $id;

	/** @var string */
	private $httpMethod;

	/** @var string */
	private $routePath;

	/** @var string */
	private $controller;

	/** @var string */
36
	private $action;
37 38 39 40

	/** @var array */
	private $parameters;

41
	public function __construct($id = null, $httpMethod = null, $routePath = null, $controller = null, $action = null)
42 43
	{
		$this->id = $id;
44
		$this->httpMethod = strtoupper($httpMethod);
45 46
		$this->routePath = $routePath;
		$this->controller = $controller;
47
		$this->action = $action;
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

		$this->parameters = array();
	}

	/**
	 * @return string
	 */
	public function getId()
	{
		return $this->id;
	}

	/**
	 * @return string
	 */
	public function getHttpMethod()
	{
		return $this->httpMethod;
	}

	/**
	 * @return string
	 */
	public function getRoutePath()
	{
		return $this->routePath;
	}

	/**
	 * @return string
	 */
	public function getController()
	{
		return $this->controller;
	}

	/**
	 * @return string
	 */
87
	public function getAction()
88
	{
89
		return $this->action;
90 91 92 93 94 95 96 97 98
	}

	/**
	 * @return array
	 */
	public function getParameters()
	{
		return $this->parameters;
	}
99 100 101 102 103 104 105 106 107 108

	/**
	 * Bind actual request parameters to the route, replacing any existing ones.
	 *
	 * @param array $parameters
	 */
	public function setParameters($parameters)
	{
		$this->parameters = $parameters;
	}
109
}