* @copyright (c), Thread */ final class Request extends \yii\web\Request { /** * @var */ private $_requestUri; /** * @var */ public $InjectionLanguageClass = InjectionLanguage::class; /** * @var array */ public $bases = []; /** * @throws ErrorException */ public function init() { if (!((new $this->InjectionLanguageClass) instanceof iInjectionLanguage)) { throw new ErrorException($this->InjectionLanguageClass . ' must be implemented ' . iInjectionLanguage::class); } call_user_func([$this->InjectionLanguageClass, 'setBases'], $this->bases); parent::init(); } /** * * @return string */ protected function resolveRequestUri() { if ($this->_requestUri === null) { $this->_requestUri = call_user_func([$this->InjectionLanguageClass, 'processLangInUrl'], parent::resolveRequestUri()); } return $this->_requestUri; } /** * * @return string */ public function getOriginalUrl() { return $this->getOriginalRequestUri(); } /** * * @return string */ public function getOriginalRequestUri() { return call_user_func([$this->InjectionLanguageClass, 'addLangToUrl'], $this->resolveRequestUri()); } }