/** * Retrieve a member of the pathinfo params * * @param string $key * @param mixed $default * @return mixed */ public static function param($key = null, $default = array()) { $params = (array) Cola::reg('_params'); if (null === $key) { return $params; } return isset($params[$key]) ? $params[$key] : $default; }
public static function cache($name = null) { if (is_array($name)) { return Cola_Com_Cache::factory($name); } if (empty($name)) { $name = '_cache'; } if ($cache = Cola::reg($name)) { return $cache; } $config = (array) Cola::config($name); $cache = Cola_Com_Cache::factory($config); Cola::reg($name, $cache); return $cache; }
/** * Match path * * @param string $path * @return boolean */ public function match($pathInfo = null) { $pathInfo = trim($pathInfo, '/'); foreach ($this->_rules as $regex => $rule) { $res = preg_match($regex, $pathInfo, $values); if (0 === $res) { continue; } if (isset($rule['maps']) && count($rule['maps'])) { $params = array(); foreach ($rule['maps'] as $pos => $key) { if (isset($values[$pos]) && '' !== $values[$pos]) { $params[$key] = urldecode($values[$pos]); } } if (isset($rule['defaults'])) { $params += $rule['defaults']; } Cola::reg('_params', $params); } return $rule; } if ($this->_enableDynamicMatch) { return $this->_dynamicMatch($pathInfo); } return false; }
/** * Get var * * @param sting $key * @param mixed $default */ protected function getVar($key = null, $default = null) { if (null === $key) { return array_merge(Cola::reg('_params', null, array()), $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV); } $funcs = array('param', 'get', 'post', 'cookie', 'server', 'env'); foreach ($funcs as $func) { if (null !== ($return = $this->request->{$func}($key))) { return $return; } } return $default; }
/** * Connect db from config * * @param array $config * @param string $regName * @return Cola_Com_Db */ public function db($name = null) { if (empty($name)) { $name = $this->_db; } if (is_array($name)) { $config = (array) $name + array('adapter' => 'Mysql', 'params' => array()); return Cola_Com_Db::factory($config); } if ($db = Cola::reg($name)) { return $db; } $config = (array) Cola::config($name) + array('adapter' => 'Mysql', 'params' => array()); $db = Cola_Com_Db::factory($config); Cola::reg($name, $db); return $db; }