%PDF- %PDF-
| Direktori : /www/varak.net/losik.varak.net/vendor/nette/application/src/Application/ |
| Current File : /www/varak.net/losik.varak.net/vendor/nette/application/src/Application/Request.php |
<?php
/**
* This file is part of the Nette Framework (https://nette.org)
* Copyright (c) 2004 David Grudl (https://davidgrudl.com)
*/
declare(strict_types=1);
namespace Nette\Application;
use Nette;
/**
* Presenter request.
*
* @property string $presenterName
* @property array $parameters
* @property array $post
* @property array $files
* @property string|null $method
*/
final class Request
{
use Nette\SmartObject;
/** method */
public const FORWARD = 'FORWARD';
/** flag */
public const SECURED = 'secured';
/** flag */
public const RESTORED = 'restored';
/** flag */
public const VARYING = 'varying';
/** @var string|null */
private $method;
/** @var array */
private $flags = [];
/** @var string */
private $name;
/** @var array */
private $params;
/** @var array */
private $post;
/** @var array */
private $files;
/**
* @param string $name presenter name (module:module:presenter)
*/
public function __construct(
string $name,
?string $method = null,
array $params = [],
array $post = [],
array $files = [],
array $flags = []
) {
$this->name = $name;
$this->method = $method;
$this->params = $params;
$this->post = $post;
$this->files = $files;
$this->flags = $flags;
}
/**
* Sets the presenter name.
* @return static
*/
public function setPresenterName(string $name)
{
$this->name = $name;
return $this;
}
/**
* Retrieve the presenter name.
*/
public function getPresenterName(): string
{
return $this->name;
}
/**
* Sets variables provided to the presenter.
* @return static
*/
public function setParameters(array $params)
{
$this->params = $params;
return $this;
}
/**
* Returns all variables provided to the presenter (usually via URL).
*/
public function getParameters(): array
{
return $this->params;
}
/**
* Returns a parameter provided to the presenter.
* @return mixed
*/
public function getParameter(string $key)
{
return $this->params[$key] ?? null;
}
/**
* Sets variables provided to the presenter via POST.
* @return static
*/
public function setPost(array $params)
{
$this->post = $params;
return $this;
}
/**
* Returns a variable provided to the presenter via POST.
* If no key is passed, returns the entire array.
* @return mixed
*/
public function getPost(?string $key = null)
{
return func_num_args() === 0
? $this->post
: ($this->post[$key] ?? null);
}
/**
* Sets all uploaded files.
* @return static
*/
public function setFiles(array $files)
{
$this->files = $files;
return $this;
}
/**
* Returns all uploaded files.
*/
public function getFiles(): array
{
return $this->files;
}
/**
* Sets the method.
* @return static
*/
public function setMethod(?string $method)
{
$this->method = $method;
return $this;
}
/**
* Returns the method.
*/
public function getMethod(): ?string
{
return $this->method;
}
/**
* Checks if the method is the given one.
*/
public function isMethod(string $method): bool
{
return strcasecmp((string) $this->method, $method) === 0;
}
/**
* Sets the flag.
* @return static
*/
public function setFlag(string $flag, bool $value = true)
{
$this->flags[$flag] = $value;
return $this;
}
/**
* Checks the flag.
*/
public function hasFlag(string $flag): bool
{
return !empty($this->flags[$flag]);
}
public function toArray(): array
{
$params = $this->params;
$params['presenter'] = $this->name;
return $params;
}
}