Router

Package framework.engine
Inheritance class Router » LsObject
Since 1.0
Source Code /framework/classes/engine/Router.class.php
Класс роутинга(контроллера) Инициализирует ядро, определяет какой экшен запустить согласно URL'у и запускает его.

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
aBehaviors array Список поведений LsObject
aConfigRoute array Конфигурация роутинга, получается из конфига Router
aParams array Список параметров ЧПУ url Router
bShowStats bool Покаывать или нет статистику выполнения Router
iHttpPort null Порт при http запросе Router
iHttpSecurePort null Порт при https запросе Router
oAction Action|null Объект текущего экшена Router
oEngine Engine|null Объект ядра Router
oInstance Router|null Объект роутинга Router
sAction string|null Текущий экшен Router
sActionClass string|null Класс текущего экшена Router
sActionEvent string|null Текущий евент Router
sActionEventName string|null Имя текущего евента Router
sPathWebCurrent string|null Текущий полный ЧПУ url Router
sPrefixUrl string|null Текущий префикс в URL, может указывать, например, на язык: ru или en Router

Public Methods

Hide inherited methods

MethodDescriptionDefined By
Action() Функция переадресации на другой экшен Router
ActionError() Алиас короткого вызова перенаправления на экшен error с необходимым текстом ошибки Router
AddBehaviorHook() Добавляет хук поведения LsObject
AttachBehavior() Присоединяет поведение к объекту LsObject
DetachBehavior() Отсоединяет поведение от объекта LsObject
Exec() Запускает весь процесс :) Router
ExecAction() Запускает на выполнение экшен Router
GetAction() Возвращает текущий экшен Router
GetActionClass() Возвращает класс текущего экшена Router
GetActionEvent() Возвращает текущий евент Router
GetActionEventName() Возвращает имя текущего евента Router
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
GetFixPathWeb() Router
GetIsAjaxRequest() Проверяет запрос послан как ajax или нет Router
GetIsSecureConnection() Проверяет тип коннекта - http или https Router
GetIsShowStats() Возвращает статус показывать или нет статистику Router
GetParam() Возвращает параметр по номеру, если его нет то возвращается null Router
GetParams() Возвращает параметры(те которые передаются в URL) Router
GetPath() Возвращает правильную адресацию по переданому названию страницы(экшену) Router
GetPathRootWeb() Возвращает веб адрес сайта с учетом типа коннекта (http или https) и нестандартных портов Router
GetPathWebCurrent() Возвращает текущий ЧПУ url Router
GetPort() Возвращает порт при http запросе Router
GetPrefixUrl() Возвращает текущий префикс URL Router
GetSecurePort() Возвращает порт при https запросе Router
LoadConfig() Выполняет загрузку конфигов роутинга Router
Location() Выполняет редирект, предварительно завершая работу Engine Router
LocationAction() Выполняет локальный редирект, предварительно завершая работу Engine Router
RemoveBehaviorHook() Удаляет хук поведения LsObject
Rewrite() Try to find rewrite rule for given page. Router
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
SetAction() Устанавливает новый текущий экшен Router
SetActionEvent() Устанавливает новый текущий евент Router
SetIsShowStats() Показывать или нет статистику выполение скрипта Router
SetParam() Устанавливает значение параметра Router
SetParams() Устанавливает новые текущие параметры Router
SetPathWebCurrent() Устанавливает текущий url Router
SetPort() Устанавливает порт Router
SetPrefixUrl() Устанавливает текущий префикс URL Router
SetSecurePort() Устанавливает порт Router
Shutdown() Завершение работы роутинга Router
Standart() Стандартизирует определение внутренних ресурсов. Router
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля LsObject
__clone() Блокируем копирование/клонирование объекта роутинга Router
__construct() Загрузка конфига роутинга при создании объекта Router
__get() Обработка доступа к объекты поведения LsObject
getInstance() Делает возможным только один экземпляр этого класса Router

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
AssignVars() Загружает в шаблонизатор Smarty необходимые переменные Router
DefineActionClass() Определяет какой класс соответствует текущему экшену Router
GetRequestArray() Возвращает массив реквеста Router
GetRequestUri() Метод выполняет первичную обработку $_SERVER['REQUEST_URI'] Router
ParseUrl() Парсим URL Router
PrepareBehaviors() Инициализация поведений LsObject
RewriteRequest() Применяет к реквесту правила реврайта из конфига Config::Get('router.uri') Router

Property Details

aConfigRoute property
protected array $aConfigRoute;

Конфигурация роутинга, получается из конфига

aParams property
protected static array $aParams;

Список параметров ЧПУ url

/action/event/param0/param1/../paramN/

bShowStats property
protected static bool $bShowStats;

Покаывать или нет статистику выполнения

iHttpPort property
protected static null $iHttpPort;

Порт при http запросе

iHttpSecurePort property
protected static null $iHttpSecurePort;

Порт при https запросе

oAction property
protected Action|null $oAction;

Объект текущего экшена

oEngine property
protected Engine|null $oEngine;

Объект ядра

oInstance property
protected static Router|null $oInstance;

Объект роутинга

See Also

sAction property
protected static string|null $sAction;

Текущий экшен

sActionClass property
protected static string|null $sActionClass;

Класс текущего экшена

sActionEvent property
protected static string|null $sActionEvent;

Текущий евент

sActionEventName property
protected static string|null $sActionEventName;

Имя текущего евента

sPathWebCurrent property
protected static string|null $sPathWebCurrent;

Текущий полный ЧПУ url

sPrefixUrl property
protected static string|null $sPrefixUrl;

Текущий префикс в URL, может указывать, например, на язык: ru или en

Method Details

Action() method
public static string Action(string $sAction, string $sEvent=NULL, array $aParams=NULL)
$sAction string Экшен
$sEvent string Евент
$aParams array Список параметров
{return} string 'next'
Source Code: /framework/classes/engine/Router.class.php#391 (show)
static public function Action($sAction$sEvent null$aParams null)
{
    
self::$sAction self::getInstance()->Rewrite($sAction);
    
self::$sActionEvent $sEvent;
    if (
is_array($aParams)) {
        
self::$aParams $aParams;
    }
    return 
'next';
}

Функция переадресации на другой экшен Если ею завершить евент в экшене то запуститься новый экшен Пример:

return Router::Action('error');

ActionError() method
public static string ActionError(string $sMsg, string|null $sTitle=NULL)
$sMsg string Текст ошибки
$sTitle string|null Заголовок ошибки
{return} string
Source Code: /framework/classes/engine/Router.class.php#409 (show)
static public function ActionError($sMsg$sTitle null)
{
    
self::getInstance()->Message_AddErrorSingle($sMsg$sTitle);
    return 
self::Action('error');
}

Алиас короткого вызова перенаправления на экшен error с необходимым текстом ошибки

AssignVars() method
protected void AssignVars()
Source Code: /framework/classes/engine/Router.class.php#283 (show)
protected function AssignVars()
{
    
$this->Viewer_Assign('sAction'$this->Standart(self::$sAction));
    
$this->Viewer_Assign('sEvent'self::$sActionEvent);
    
$this->Viewer_Assign('aParams'self::$aParams);
    
$this->Viewer_Assign('PATH_WEB_CURRENT'func_urlspecialchars(self::$sPathWebCurrent));
}

Загружает в шаблонизатор Smarty необходимые переменные

DefineActionClass() method
protected string DefineActionClass()
{return} string
Source Code: /framework/classes/engine/Router.class.php#353 (show)
protected function DefineActionClass()
{
    if (isset(
$this->aConfigRoute['page'][self::$sAction])) {

    } elseif (
self::$sAction === null) {
        
self::$sAction $this->aConfigRoute['config']['default']['action'];
        if (!
is_null($sEvent $this->aConfigRoute['config']['default']['event'])) {
            
self::$sActionEvent $sEvent;
        }
        if (
is_array($aParams $this->aConfigRoute['config']['default']['params'])) {
            
self::$aParams $aParams;
        }
        if (
is_array($aRequest $this->aConfigRoute['config']['default']['request'])) {
            foreach (
$aRequest as $k => $v) {
                if (!
array_key_exists($k$_REQUEST)) {
                    
$_REQUEST[$k] = $v;
                }
            }
        }
    } else {
        
//Если не находим нужного класса то отправляем на страницу ошибки
        
self::$sAction $this->aConfigRoute['config']['action_not_found'];
        
self::$sActionEvent '404';
    }
    
self::$sActionClass $this->aConfigRoute['page'][self::$sAction];
    return 
self::$sActionClass;
}

Определяет какой класс соответствует текущему экшену

Exec() method
public void Exec($aParams=array ( ))
$aParams
Source Code: /framework/classes/engine/Router.class.php#149 (show)
public function Exec($aParams = array())
{
    
$this->ParseUrl();
    if (isset(
$aParams['callback_after_parse_url'])) {
        
/**
         * Для возможности изменять результат парсинга URL, например, для учета поддоменов
         */
        
call_user_func($aParams['callback_after_parse_url']);
    }
    
$this->DefineActionClass(); // Для возможности ДО инициализации модулей определить какой action/event запрошен
    
$this->oEngine Engine::getInstance();
    
$this->oEngine->Init();
    
$this->ExecAction();
    
$this->Shutdown(false);
}

Запускает весь процесс :)

ExecAction() method
public void ExecAction()
Source Code: /framework/classes/engine/Router.class.php#296 (show)
public function ExecAction()
{
    
$this->DefineActionClass();
    
/**
     * Сначала запускаем инициализирующий евент
     */
    
$this->Hook_Run('init_action');

    
$sActionClass $this->DefineActionClass();
    
/**
     * Определяем наличие делегата экшена
     */
    
if ($aChain $this->Plugin_GetDelegationChain('action'$sActionClass)) {
        if (!empty(
$aChain)) {
            
$sActionClass $aChain[0];
        }
    }
    
self::$sActionClass $sActionClass;
    
/**
     * Если класс экешна начинается с Plugin*_, значит необходимо загрузить объект из указанного плагина
     */
    
if (!preg_match('/^Plugin([\w]+)_Action([\w]+)$/i'$sActionClass$aMatches)) {
        
//require_once(Config::Get('path.root.application').'/classes/actions/'.$sActionClass.'.class.php');
    
} else {
        
//require_once(Config::Get('path.root.application').'/plugins/'.func_underscore($aMatches[1]).'/classes/actions/Action'.ucfirst($aMatches[2]).'.class.php');
    
}

    
$sClassName $sActionClass;
    
$this->oAction = new $sClassName(self::$sAction);
    
/**
     * Инициализируем экшен
     */
    
$this->Hook_Run("action_init_" strtolower($sActionClass) . "_before");
    
$sInitResult $this->oAction->Init();
    
$this->Hook_Run("action_init_" strtolower($sActionClass) . "_after");

    if (
$sInitResult === 'next') {
        
$this->ExecAction();
    } else {
        
$res $this->oAction->ExecEvent();
        
self::$sActionEventName $this->oAction->GetCurrentEventName();

        
$this->Hook_Run("action_shutdown_" strtolower($sActionClass) . "_before");
        
$this->oAction->EventShutdown();
        
$this->Hook_Run("action_shutdown_" strtolower($sActionClass) . "_after");

        if (
$res === 'next') {
            
$this->ExecAction();
        }
    }
}

Запускает на выполнение экшен Может запускаться рекурсивно если в одном экшене стоит переадресация на другой

GetAction() method
public static string GetAction()
{return} string
Source Code: /framework/classes/engine/Router.class.php#543 (show)
static public function GetAction()
{
    return 
self::getInstance()->Standart(self::$sAction);
}

Возвращает текущий экшен

GetActionClass() method
public static string GetActionClass()
{return} string
Source Code: /framework/classes/engine/Router.class.php#583 (show)
static public function GetActionClass()
{
    return 
self::$sActionClass;
}

Возвращает класс текущего экшена

GetActionEvent() method
public static string GetActionEvent()
{return} string
Source Code: /framework/classes/engine/Router.class.php#563 (show)
static public function GetActionEvent()
{
    return 
self::$sActionEvent;
}

Возвращает текущий евент

GetActionEventName() method
public static string GetActionEventName()
{return} string
Source Code: /framework/classes/engine/Router.class.php#573 (show)
static public function GetActionEventName()
{
    return 
self::$sActionEventName;
}

Возвращает имя текущего евента

GetFixPathWeb() method
public static void GetFixPathWeb($sUrl, $bWithScheme=true)
$sUrl
$bWithScheme
Source Code: /framework/classes/engine/Router.class.php#435 (show)
static public function GetFixPathWeb($sUrl$bWithScheme true)
{
    
$sResult '';
    
$aPathFull parse_url($sUrl);
    
$sPath preg_replace('/^(http|https):\/\/[^\/]+/i'''$sUrl);
    if (isset(
$aPathFull['host'])) {
        
$sHost $aPathFull['host'];
    } elseif (isset(
$_SERVER['HTTP_HOST'])) {
        
$sHost $_SERVER['HTTP_HOST'];
    } else {
        
$sHost = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'localhost';
    }
    
$bSecure self::GetIsSecureConnection();
    if (
$bWithScheme) {
        
$sResult = ($bSecure 'https' 'http') . '://';
    }
    
$sResult .= $sHost;
    
$iPort $bSecure self::GetSecurePort() : self::GetPort();
    if ((
$iPort !== 80 && !$bSecure) || ($iPort !== 443 && $bSecure)) {
        
$sResult .= ':' $iPort;
    }
    
$sResult .= rtrim($sPath'\\/');
    return 
$sResult;
}

GetIsAjaxRequest() method
public static bool GetIsAjaxRequest()
{return} bool
Source Code: /framework/classes/engine/Router.class.php#669 (show)
static public function GetIsAjaxRequest()
{
    return 
isAjaxRequest();
}

Проверяет запрос послан как ajax или нет

GetIsSecureConnection() method
public static bool GetIsSecureConnection()
{return} bool
Source Code: /framework/classes/engine/Router.class.php#679 (show)
static public function GetIsSecureConnection()
{
    return isset(
$_SERVER['HTTPS']) && (strcasecmp($_SERVER['HTTPS'], 'on') === || $_SERVER['HTTPS'] == 1)
    || isset(
$_SERVER['HTTP_X_FORWARDED_PROTO']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') === 0;
}

Проверяет тип коннекта - http или https

GetIsShowStats() method
public static bool GetIsShowStats()
{return} bool
Source Code: /framework/classes/engine/Router.class.php#659 (show)
static public function GetIsShowStats()
{
    return 
self::$bShowStats;
}

Возвращает статус показывать или нет статистику

GetParam() method
public static string GetParam(int $iOffset, mixed|null $def=NULL)
$iOffset int
$def mixed|null
{return} string
Source Code: /framework/classes/engine/Router.class.php#616 (show)
static public function GetParam($iOffset$def null)
{
    
$iOffset = (int)$iOffset;
    return isset(
self::$aParams[$iOffset]) ? self::$aParams[$iOffset] : $def;
}

Возвращает параметр по номеру, если его нет то возвращается null Нумерация параметров начинается нуля

GetParams() method
public static array GetParams()
{return} array
Source Code: /framework/classes/engine/Router.class.php#603 (show)
static public function GetParams()
{
    return 
self::$aParams;
}

Возвращает параметры(те которые передаются в URL)

GetPath() method
public static string GetPath(string $sAction)
$sAction string Экшен или путь, например, "people/top" или "/"
{return} string
Source Code: /framework/classes/engine/Router.class.php#700 (show)
static public function GetPath($sAction)
{
    if (!
$sAction or $sAction == '/') {
        return 
self::GetPathRootWeb() . (self::$sPrefixUrl '/' self::$sPrefixUrl '') . '/';
    }
    
// Если пользователь запросил action по умолчанию
    
$sPage = ($sAction == 'default')
        ? 
self::getInstance()->aConfigRoute['config']['default']['action']
        : 
$sAction;
    
$aUrl explode('/'$sPage);
    
$sPage array_shift($aUrl);
    
$sAdditional join('/'$aUrl);
    
// Смотрим, есть ли правило rewrite
    
$sPage self::getInstance()->Rewrite($sPage);
    
/**
     * Если нет GET параметров, то добавляем в конец '/'
     */
    
if ($sAdditional and strpos($sAdditional'?') === false) {
        
$sAdditional .= '/';
    }
    return 
self::GetPathRootWeb() . (self::$sPrefixUrl '/' self::$sPrefixUrl '') . "/$sPage/" . ($sAdditional "{$sAdditional}'');
}

Возвращает правильную адресацию по переданому названию страницы(экшену)

GetPathRootWeb() method
public static string GetPathRootWeb(bool $bWithScheme=true)
$bWithScheme bool Возвращать в урле схему или нет
{return} string
Source Code: /framework/classes/engine/Router.class.php#467 (show)
static public function GetPathRootWeb($bWithScheme true)
{
    return 
self::GetFixPathWeb(Config::Get('path.root.web'), $bWithScheme);
}

Возвращает веб адрес сайта с учетом типа коннекта (http или https) и нестандартных портов

GetPathWebCurrent() method
public static string GetPathWebCurrent()
{return} string
Source Code: /framework/classes/engine/Router.class.php#420 (show)
static public function GetPathWebCurrent()
{
    return 
self::$sPathWebCurrent;
}

Возвращает текущий ЧПУ url

GetPort() method
public static int|null GetPort()
{return} int|null
Source Code: /framework/classes/engine/Router.class.php#500 (show)
static public function GetPort()
{
    if (
is_null(self::$iHttpPort)) {
        
self::$iHttpPort = !self::GetIsSecureConnection() && isset($_SERVER['SERVER_PORT']) ? (int)$_SERVER['SERVER_PORT'] : 80;
    }
    return 
self::$iHttpPort;
}

Возвращает порт при http запросе

GetPrefixUrl() method
public static string GetPrefixUrl()
{return} string
Source Code: /framework/classes/engine/Router.class.php#523 (show)
static public function GetPrefixUrl()
{
    return 
self::$sPrefixUrl;
}

Возвращает текущий префикс URL

GetRequestArray() method
protected array GetRequestArray(string $sReq)
$sReq string Строка реквеста
{return} array
Source Code: /framework/classes/engine/Router.class.php#234 (show)
protected function GetRequestArray($sReq)
{
    
$aRequestUrl = ($sReq == '') ? array() : explode('/'trim($sReq'/'));
    for (
$i 0$i Config::Get('path.offset_request_url'); $i++) {
        
array_shift($aRequestUrl);
    }
    
$aRequestUrl array_map('urldecode'$aRequestUrl);
    return 
$aRequestUrl;
}

Возвращает массив реквеста

GetRequestUri() method
protected string GetRequestUri()
{return} string
Source Code: /framework/classes/engine/Router.class.php#216 (show)
protected function GetRequestUri()
{
    
$sReq preg_replace("/\/+/"'/'$_SERVER['REQUEST_URI']);
    
$sReq preg_replace("/^\/(.*)\/?$/U"'\\1'$sReq);
    
$sReq preg_replace("/^(.*)\?.*$/U"'\\1'$sReq);
    
/**
     * Формируем $sPathWebCurrent ДО применения реврайтов
     */
    
self::$sPathWebCurrent self::GetPathRootWeb() . "/" join('/'$this->GetRequestArray($sReq));
    return 
$sReq;
}

Метод выполняет первичную обработку $_SERVER['REQUEST_URI']

GetSecurePort() method
public static int|null GetSecurePort()
{return} int|null
Source Code: /framework/classes/engine/Router.class.php#477 (show)
static public function GetSecurePort()
{
    if (
is_null(self::$iHttpSecurePort)) {
        
self::$iHttpSecurePort self::GetIsSecureConnection() && isset($_SERVER['SERVER_PORT']) ? (int)$_SERVER['SERVER_PORT'] : 443;
    }
    return 
self::$iHttpSecurePort;
}

Возвращает порт при https запросе

LoadConfig() method
public void LoadConfig()
Source Code: /framework/classes/engine/Router.class.php#266 (show)
public function LoadConfig()
{
    
//Конфиг роутинга, содержит соответствия URL и классов экшенов
    
$this->aConfigRoute Config::Get('router');
    
// Переписываем конфиг согласно правилу rewrite
    
foreach ((array)$this->aConfigRoute['rewrite'] as $sPage => $sRewrite) {
        if (isset(
$this->aConfigRoute['page'][$sPage])) {
            
$this->aConfigRoute['page'][$sRewrite] = $this->aConfigRoute['page'][$sPage];
            unset(
$this->aConfigRoute['page'][$sPage]);
        }
    }
}

Выполняет загрузку конфигов роутинга

Location() method
public static void Location(string $sLocation)
$sLocation string URL для редиректа
Source Code: /framework/classes/engine/Router.class.php#760 (show)
static public function Location($sLocation)
{
    
self::getInstance()->oEngine->Shutdown();
    
func_header_location($sLocation);
}

Выполняет редирект, предварительно завершая работу Engine

LocationAction() method
public static void LocationAction(string $sLocation)
$sLocation string локальный адрес, который можно использовать в Router::GetPath();, например, 'blog/news'
Source Code: /framework/classes/engine/Router.class.php#771 (show)
static public function LocationAction($sLocation)
{
    
self::Location(self::GetPath($sLocation));
}

Выполняет локальный редирект, предварительно завершая работу Engine

ParseUrl() method
protected void ParseUrl()
Source Code: /framework/classes/engine/Router.class.php#188 (show)
protected function ParseUrl()
{
    
$sReq $this->GetRequestUri();
    
$aRequestUrl $this->GetRequestArray($sReq);

    
/**
     * Проверяем на наличие префикса в URL
     */
    
if ($sPrefixRule Config::Get('router.prefix')) {
        if (isset(
$aRequestUrl[0]) and preg_match('#^' $sPrefixRule '$#i'$aRequestUrl[0])) {
            
self::$sPrefixUrl array_shift($aRequestUrl);
        } elseif (
$sPrefixDefault Config::Get('router.prefix_default')) {
            
self::$sPrefixUrl $sPrefixDefault;
        }
    }

    
$aRequestUrl $this->RewriteRequest($aRequestUrl);

    
self::$sAction array_shift($aRequestUrl);
    
self::$sActionEvent array_shift($aRequestUrl);
    
self::$aParams $aRequestUrl;
}

Парсим URL Пример: http://site.ru/action/event/param1/param2/ на выходе получим: self::$sAction='action'; self::$sActionEvent='event'; self::$aParams=array('param1','param2');

Rewrite() method
public string Rewrite(string $sPage)
$sPage string
{return} string
Source Code: /framework/classes/engine/Router.class.php#730 (show)
public function Rewrite($sPage)
{
    return (isset(
$this->aConfigRoute['rewrite'][$sPage]))
        ? 
$this->aConfigRoute['rewrite'][$sPage]
        : 
$sPage;
}

Try to find rewrite rule for given page. On success return rigth page, else return given param.

RewriteRequest() method
protected array RewriteRequest($aRequestUrl $aRequestUrl)
$aRequestUrl $aRequestUrl Массив реквеста
{return} array
Source Code: /framework/classes/engine/Router.class.php#250 (show)
protected function RewriteRequest($aRequestUrl)
{
    
/**
     * Правила Rewrite для REQUEST_URI
     */
    
$sReq implode('/'$aRequestUrl);
    if (
$aRewrite Config::Get('router.uri')) {
        
$sReq preg_replace(array_keys($aRewrite), array_values($aRewrite), $sReq);
    }
    return (
$sReq == '') ? array() : explode('/'$sReq);
}

Применяет к реквесту правила реврайта из конфига Config::Get('router.uri')

SetAction() method
public static void SetAction(string $sAction)
$sAction string Экшен
Source Code: /framework/classes/engine/Router.class.php#553 (show)
static public function SetAction($sAction)
{
    
self::$sAction $sAction;
}

Устанавливает новый текущий экшен

SetActionEvent() method
public static void SetActionEvent(string $sEvent)
$sEvent string Евент
Source Code: /framework/classes/engine/Router.class.php#593 (show)
static public function SetActionEvent($sEvent)
{
    
self::$sActionEvent $sEvent;
}

Устанавливает новый текущий евент

SetIsShowStats() method
public static void SetIsShowStats(bool $bState)
$bState bool
Source Code: /framework/classes/engine/Router.class.php#649 (show)
static public function SetIsShowStats($bState)
{
    
self::$bShowStats $bState;
}

Показывать или нет статистику выполение скрипта Иногда бывает необходимо отключить показ, например, при выводе RSS ленты

SetParam() method
public static void SetParam(int $iOffset, mixed $value)
$iOffset int Номер параметра, по идеи может быть не только числом
$value mixed
Source Code: /framework/classes/engine/Router.class.php#628 (show)
static public function SetParam($iOffset$value)
{
    
self::$aParams[$iOffset] = $value;
}

Устанавливает значение параметра

SetParams() method
public static void SetParams(string $aParams)
$aParams string Параметры
Source Code: /framework/classes/engine/Router.class.php#638 (show)
static public function SetParams($aParams)
{
    
self::$aParams $aParams;
}

Устанавливает новые текущие параметры

SetPathWebCurrent() method
public static void SetPathWebCurrent(string $sUrl)
$sUrl string
Source Code: /framework/classes/engine/Router.class.php#430 (show)
static public function SetPathWebCurrent($sUrl)
{
    
self::$sPathWebCurrent $sUrl;
}

Устанавливает текущий url

SetPort() method
public static void SetPort($iPort $iPort)
$iPort $iPort
Source Code: /framework/classes/engine/Router.class.php#513 (show)
static public function SetPort($iPort)
{
    
self::$iHttpPort $iPort;
}

Устанавливает порт

SetPrefixUrl() method
public static void SetPrefixUrl(string $sPrefix)
$sPrefix string
Source Code: /framework/classes/engine/Router.class.php#533 (show)
static public function SetPrefixUrl($sPrefix)
{
    
self::$sPrefixUrl $sPrefix;
}

Устанавливает текущий префикс URL

SetSecurePort() method
public static void SetSecurePort($iPort $iPort)
$iPort $iPort
Source Code: /framework/classes/engine/Router.class.php#490 (show)
static public function SetSecurePort($iPort)
{
    
self::$iHttpSecurePort $iPort;
}

Устанавливает порт

Shutdown() method
public void Shutdown(bool $bExit=true)
$bExit bool Принудительно завершить выполнение скрипта
Source Code: /framework/classes/engine/Router.class.php#170 (show)
public function Shutdown($bExit true)
{
    
$this->AssignVars();
    
$this->oEngine->Shutdown();
    
$this->Viewer_Display($this->oAction->GetTemplate());
    if (
$bExit) {
        exit();
    }
}

Завершение работы роутинга

Standart() method
public string Standart(string $sPage)
$sPage string
{return} string
Source Code: /framework/classes/engine/Router.class.php#747 (show)
public function Standart($sPage)
{
    
$aRewrite array_flip($this->aConfigRoute['rewrite']);
    return (isset(
$aRewrite[$sPage]))
        ? 
$aRewrite[$sPage]
        : 
$sPage;
}

Стандартизирует определение внутренних ресурсов.

Пытается по переданому экшену найти rewrite rule и вернуть стандартное название ресусрса.

See Also

__clone() method
public void __clone()
Source Code: /framework/classes/engine/Router.class.php#689 (show)
public function __clone()
{
    throw new 
Exception('Not allow clone Router');
}

Блокируем копирование/клонирование объекта роутинга

__construct() method
public void __construct()
Source Code: /framework/classes/engine/Router.class.php#139 (show)
public function __construct()
{
    
parent::__construct();
    
$this->LoadConfig();
}

Загрузка конфига роутинга при создании объекта

getInstance() method
public static Router getInstance()
{return} Router
Source Code: /framework/classes/engine/Router.class.php#126 (show)
static public function getInstance()
{
    if (isset(
self::$oInstance) and (self::$oInstance instanceof self)) {
        return 
self::$oInstance;
    } else {
        
self::$oInstance = new self();
        return 
self::$oInstance;
    }
}

Делает возможным только один экземпляр этого класса