use zend router
[GitHub/Stricted/Domain-Control-Panel.git] / vendor / Zend / Mvc / Controller / Plugin / Params.php
1 <?php
2 /**
3 * Zend Framework (http://framework.zend.com/)
4 *
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license http://framework.zend.com/license/new-bsd New BSD License
8 */
9
10 namespace Zend\Mvc\Controller\Plugin;
11
12 use Zend\Mvc\Exception\RuntimeException;
13 use Zend\Mvc\InjectApplicationEventInterface;
14
15 class Params extends AbstractPlugin
16 {
17 /**
18 * Grabs a param from route match by default.
19 *
20 * @param string $param
21 * @param mixed $default
22 * @return mixed
23 */
24 public function __invoke($param = null, $default = null)
25 {
26 if ($param === null) {
27 return $this;
28 }
29 return $this->fromRoute($param, $default);
30 }
31
32 /**
33 * Return all files or a single file.
34 *
35 * @param string $name File name to retrieve, or null to get all.
36 * @param mixed $default Default value to use when the file is missing.
37 * @return array|\ArrayAccess|null
38 */
39 public function fromFiles($name = null, $default = null)
40 {
41 if ($name === null) {
42 return $this->getController()->getRequest()->getFiles($name, $default)->toArray();
43 }
44
45 return $this->getController()->getRequest()->getFiles($name, $default);
46 }
47
48 /**
49 * Return all header parameters or a single header parameter.
50 *
51 * @param string $header Header name to retrieve, or null to get all.
52 * @param mixed $default Default value to use when the requested header is missing.
53 * @return null|\Zend\Http\Header\HeaderInterface
54 */
55 public function fromHeader($header = null, $default = null)
56 {
57 if ($header === null) {
58 return $this->getController()->getRequest()->getHeaders($header, $default)->toArray();
59 }
60
61 return $this->getController()->getRequest()->getHeaders($header, $default);
62 }
63
64 /**
65 * Return all post parameters or a single post parameter.
66 *
67 * @param string $param Parameter name to retrieve, or null to get all.
68 * @param mixed $default Default value to use when the parameter is missing.
69 * @return mixed
70 */
71 public function fromPost($param = null, $default = null)
72 {
73 if ($param === null) {
74 return $this->getController()->getRequest()->getPost($param, $default)->toArray();
75 }
76
77 return $this->getController()->getRequest()->getPost($param, $default);
78 }
79
80 /**
81 * Return all query parameters or a single query parameter.
82 *
83 * @param string $param Parameter name to retrieve, or null to get all.
84 * @param mixed $default Default value to use when the parameter is missing.
85 * @return mixed
86 */
87 public function fromQuery($param = null, $default = null)
88 {
89 if ($param === null) {
90 return $this->getController()->getRequest()->getQuery($param, $default)->toArray();
91 }
92
93 return $this->getController()->getRequest()->getQuery($param, $default);
94 }
95
96 /**
97 * Return all route parameters or a single route parameter.
98 *
99 * @param string $param Parameter name to retrieve, or null to get all.
100 * @param mixed $default Default value to use when the parameter is missing.
101 * @return mixed
102 * @throws RuntimeException
103 */
104 public function fromRoute($param = null, $default = null)
105 {
106 $controller = $this->getController();
107
108 if (!$controller instanceof InjectApplicationEventInterface) {
109 throw new RuntimeException(
110 'Controllers must implement Zend\Mvc\InjectApplicationEventInterface to use this plugin.'
111 );
112 }
113
114 if ($param === null) {
115 return $controller->getEvent()->getRouteMatch()->getParams();
116 }
117
118 return $controller->getEvent()->getRouteMatch()->getParam($param, $default);
119 }
120 }