private function initByArr()

in common/url/FSOFUrl.php [96:164]


    private function initByArr($urlPara)
    {
        if( !isset($urlPara[self::URL_SCHEME]) ||
            !isset($urlPara[self::URL_HOST]) ||
            !isset($urlPara[self::URL_PORT]))
        {
            return FALSE;
        }

        $this->params = $urlPara;
        $this->schema = $urlPara[self::URL_SCHEME];
        $this->host =  $urlPara[self::URL_HOST];
        $this->port =  $urlPara[self::URL_PORT];
        $getArgs = null;

        if(isset($urlPara[self::URL_QUERY]))
        {
            $this->query = $urlPara[self::URL_QUERY];
            parse_str($this->query,$getArgs);
            $this->params = array_merge($this->params,$getArgs);
        }

		if (isset ($getArgs))
		{
			if(isset($getArgs[self::URL_VERSION]))
			{
				$this->version = $getArgs[self::URL_VERSION];
			}

			if(isset($getArgs[self::URL_GROUP]))
			{
				$this->group = $getArgs[self::URL_GROUP];
			}

			if (array_key_exists(self::URL_WEIGHT,$getArgs))
			{
				$this->weight = intval($getArgs[self::URL_WEIGHT]);
			}
			else
			{
				$this->weight = null;
			}

			if(isset($getArgs[self::URL_SET]))
			{
				$this->set = $getArgs[self::URL_SET];
			}

			if(isset($urlPara[self::URL_PATH]))
			{
				$this->service = ltrim($urlPara[self::URL_PATH], '/');
			}
			else if(isset($getArgs[self::URL_SERVICE]))
			{
				$this->service = $getArgs[self::URL_SERVICE];
			}

			if(isset($getArgs[self::URL_SERIALIZATION]))
            {
                $this->serialization = $getArgs[self::URL_SERIALIZATION];
            } else {
                $this->serialization = 'hessian2';
            }
		}

        $this->joinUrlStr();

        return true;
    }