Source for file Request.class.php
Documentation is available at Request.class.php
* @copyright Energine 2006
//require_once('core/framework/URI.class.php');
* @var Request единый в системе экземпляр класса Request (паттерн Singleton)
private static $instance;
* @var URI текущий URI запроса
* @var string путь к корню сайта в общем пути URI
* @var string язык, указанный в URI
* @var array путь из URI запроса (без пути к корню и языка)
* @var int смещение в пути, разделяющее путь шаблона, и путь, относящийся к действию
* Путь, относящийся к действию
$uri = (isset ($_SERVER['HTTPS']) ? 'https' : 'http'). '://'. $_SERVER['SERVER_NAME']. $_SERVER['REQUEST_URI'];
//SERVER_PORT - не катит при использовании проброса из какого то порта на 80
$port = explode(':', $_SERVER['HTTP_HOST']);
if ($rootPath[strlen($rootPath)- 1] != '/') {
$rootPathLen = strlen($rootPath);
if (strpos($path, $rootPath) === 0) {
$this->lang = (isset ($path[0]) && $language->isValidLangAbbr($path[0])) ? array_shift($path) : '';
* Возвращает единый для всей системы экземпляр класса Request.
if (!isset (self::$instance)) {
self::$instance = new Request;
* Возвращает URI запроса.
* Возвращает путь к корню сайта.
* Возвращает URI-адрес корня сайта.
return $this->getURI()->getScheme(). '://'. $this->getURI()->getHost(). ((($port = $this->getURI()->getPort()) == 80)? '': ':'. $port). $this->getRootPath();
* Возвращает язык, указанный в URI запроса.
* Возвращает сегмент(аббревиатуру) языка
return (empty($this->lang) ? '' : $this->lang. '/');
* Возвращает путь из URI запроса.
* @param int $what тип пути - определяет какую часть пути вернуть
* @param boolean $asString вернуть путь в виде строки
public function getPath($what = self::PATH_WHOLE, $asString = false) {
case self::PATH_TEMPLATE:
$path = (empty($path) ? '' : implode('/', $path). '/');
* Устанавливает смещение в пути, разделяющее путь шаблона, и путь, относящийся к действию.
* Возвращает смещение в пути.
* Возвращает IP-адрес клиента.
$ip = $_SERVER['REMOTE_ADDR'];
if (isset ($_ENV['HTTP_X_FORWARDED_FOR']) && ip2long($_ENV['HTTP_X_FORWARDED_FOR']) != - 1) {
$ip = $_ENV['HTTP_X_FORWARDED_FOR'];
|