| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | <?phpclass LtCacheConfigBuilder{	protected $servers = array();	protected $defaultConfig = array(		"adapter"    => "phps",     //apc,xcach,ea; file, phps; memcached	//"prefix"     => ""	//"host"       => "localhost", //some ip, hostname	//"port"       => 3306,	);	public function addSingleHost($hostConfig)	{		$this->addHost("group_0", "node_0", "master", $hostConfig);	}	public function addHost($groupId, $nodeId = "node_0", $role = "master", $hostConfig)	{		if (isset($this->servers[$groupId][$nodeId][$role]))		{//以相同role的第一个host为默认配置			$ref = $this->servers[$groupId][$nodeId][$role][0];		}		else if ("slave" == $role && isset($this->servers[$groupId][$nodeId]["master"]))		{//slave host以master的第一个host为默认配置			$ref = $this->servers[$groupId][$nodeId]["master"][0];		}		else if (isset($this->servers[$groupId]) && count($this->servers[$groupId]))		{//以本group第一个node的master第一个host为默认配置			$refNode = key($this->servers[$groupId]);			$ref = $this->servers[$groupId][$refNode]["master"][0];		}		else		{			if (!isset($hostConfig["adapter"]))			{				trigger_error("No db adapter specified");			}			$ref = $this->defaultConfig;		}		$conf = array_merge($ref, $hostConfig);		$this->servers[$groupId][$nodeId][$role][] = $conf;	}	public function getServers()	{		return $this->servers;	}}
 |