protected function urlAbsPartAndSplit (\MvcCore\IRequest & $request, $resultUrl, & $domainParams, $splitUrl) {
		$domainParamsFlag = $this->flags[1];
		$basePathInReverse = FALSE;
		if ($domainParamsFlag >= static::FLAG_HOST_BASEPATH) {
			$basePathInReverse = TRUE;
			$domainParamsFlag -= static::FLAG_HOST_BASEPATH;
		}
		if ($this->flags[0]) {
			// route is defined as absolute with possible `%domain%` and other params
			// process possible replacements in reverse result - `%host%`, `%domain%`, `%tld%` and `%sld%`
			$this->urlReplaceDomainReverseParams($request, $resultUrl, $domainParams, $domainParamsFlag);
			// try to find URL position after domain part and after base path part
			if ($basePathInReverse) {
				return $this->urlAbsPartAndSplitByReverseBasePath($request, $resultUrl, $domainParams, $splitUrl);
			} else {
				return $this->urlAbsPartAndSplitByRequestedBasePath($request, $resultUrl, $splitUrl);
			}
		} else {
			// route is not defined as absolute, there could be only flag 
			// in domain params array to complete absolute URL by developer
			// and there could be also `basePath` param defined.
			return $this->urlAbsPartAndSplitByGlobalSwitchOrBasePath(
				$request, $resultUrl, $domainParams, $domainParamsFlag, $splitUrl
			);
		}
	}
protected function urlAbsPartAndSplit (\MvcCore\IRequest & $request, $resultUrl, & $domainParams, $splitUrl) {
		$domainParamsFlag = $this->flags[1];
		$basePathInReverse = FALSE;
		if ($domainParamsFlag >= static::FLAG_HOST_BASEPATH) {
			$basePathInReverse = TRUE;
			$domainParamsFlag -= static::FLAG_HOST_BASEPATH;
		}
		if ($this->flags[0]) {
			// route is defined as absolute with possible `%domain%` and other params
			// process possible replacements in reverse result - `%host%`, `%domain%`, `%tld%` and `%sld%`
			$this->urlReplaceDomainReverseParams($request, $resultUrl, $domainParams, $domainParamsFlag);
			// try to find URL position after domain part and after base path part
			if ($basePathInReverse) {
				return $this->urlAbsPartAndSplitByReverseBasePath($request, $resultUrl, $domainParams, $splitUrl);
			} else {
				return $this->urlAbsPartAndSplitByRequestedBasePath($request, $resultUrl, $splitUrl);
			}
		} else {
			// route is not defined as absolute, there could be only flag 
			// in domain params array to complete absolute URL by developer
			// and there could be also `basePath` param defined.
			return $this->urlAbsPartAndSplitByGlobalSwitchOrBasePath(
				$request, $resultUrl, $domainParams, $domainParamsFlag, $splitUrl
			);
		}
	}
protected function urlAbsPartAndSplit ( \ MvcCore \ IRequest & $ request , $ resultUrl , & $ domainParams , $ splitUrl ) { $ domainParamsFlag = $ this -> flags [ 1 ] ; $ basePathInReverse = FALSE ; if ( $ domainParamsFlag >= static :: FLAG_HOST_BASEPATH ) { $ basePathInReverse = TRUE ; $ domainParamsFlag -= static :: FLAG_HOST_BASEPATH ; } if ( $ this -> flags [ 0 ] ) { // route is defined as absolute with possible `%domain%` and other params // process possible replacements in reverse result - `%host%`, `%domain%`, `%tld%` and `%sld%` $ this -> urlReplaceDomainReverseParams ( $ request , $ resultUrl , $ domainParams , $ domainParamsFlag ) ; // try to find URL position after domain part and after base path part if ( $ basePathInReverse ) { return $ this -> urlAbsPartAndSplitByReverseBasePath ( $ request , $ resultUrl , $ domainParams , $ splitUrl ) ; } else { return $ this -> urlAbsPartAndSplitByRequestedBasePath ( $ request , $ resultUrl , $ splitUrl ) ; } } else { // route is not defined as absolute, there could be only flag  // in domain params array to complete absolute URL by developer // and there could be also `basePath` param defined. return $ this -> urlAbsPartAndSplitByGlobalSwitchOrBasePath ( $ request , $ resultUrl , $ domainParams , $ domainParamsFlag , $ splitUrl ) ; } }
After final URL is completed, split result URL into two parts. First part
as scheme, domain part and base path and second part as application
request path and query string.
@param \MvcCore\IRequest $request
A request object.
@param string			$resultUrl
Result URL to split. REsult URL still could
contain domain part or base path replacements.
@param array				$domainParams
Array with params for first URL part (scheme,
domain, base path).
@param bool				$splitUrl
Boolean value about to split completed result URL
into two parts or not. Default is FALSE to return
a string array with only one record - the result
URL. If `TRUE`, result url is split into two
parts and function return array with two items.
@return \string[]		Result URL address in array. If last argument is
`FALSE` by default, this function returns only
single item array with result URL. If last
argument is `TRUE`, function returns result URL
in two parts - domain part with base path and
path part with query string.
After final URL is completed split result URL into two parts . First part as scheme domain part and base path and second part as application request path and query string .