Prado\Web\THttpRequest::getUrlManagerModule PHP Method

getUrlManagerModule() public method

public getUrlManagerModule ( ) : TUrlManager
return TUrlManager the URL manager module
    public function getUrlManagerModule()
    {
        if ($this->_urlManager === null) {
            if (($this->_urlManager = $this->loadCachedUrlManager()) === null) {
                if (empty($this->_urlManagerID)) {
                    $this->_urlManager = new TUrlManager();
                    $this->_urlManager->init(null);
                } else {
                    $this->_urlManager = $this->getApplication()->getModule($this->_urlManagerID);
                    if ($this->_urlManager === null) {
                        throw new TConfigurationException('httprequest_urlmanager_inexist', $this->_urlManagerID);
                    }
                    if (!$this->_urlManager instanceof TUrlManager) {
                        throw new TConfigurationException('httprequest_urlmanager_invalid', $this->_urlManagerID);
                    }
                }
                $this->cacheUrlManager($this->_urlManager);
            }
        }
        return $this->_urlManager;
    }

Usage Example

Beispiel #1
0
 public function testSetUrlManager()
 {
     $request = new THttpRequest();
     // Try invalid manager id
     $request->setUrlManager('invalidManagerId');
     try {
         $request->init(null);
         $request->getUrlManagerModule();
         self::fail('httprequest_urlmanager_inexist exception not thrown');
     } catch (TConfigurationException $e) {
     }
     $request = null;
     // Try with valid module id, but not instance of TUrlManager
     $module = new TAssetManager();
     self::$app->setModule('badmanager', $module);
     $request = new THttpRequest();
     $request->setUrlManager('badmanager');
     try {
         $request->init(null);
         $request->getUrlManagerModule();
         self::fail('httprequest_urlmanager_invalid exception not thrown');
     } catch (TConfigurationException $e) {
     }
     $request = null;
     // Finally, try with a valid manager
     $module = new TUrlManager();
     self::$app->setModule('goodmanager', $module);
     $request = new THttpRequest();
     $request->setUrlManager('goodmanager');
     $request->init(null);
     self::assertEquals('goodmanager', $request->getUrlManager());
     self::assertInstanceOf('Prado\\Web\\TUrlManager', $request->getUrlManagerModule());
 }