function build($url, $args = [])
{
$args += $this->hive['PARAMS'];
if (is_array($url)) {
foreach ($url as &$var) {
$var = $this->build($var, $args);
unset($var);
}
} else {
$i = 0;
$url = preg_replace_callback('/@(\\w+)|(\\*)/', function ($match) use(&$i, $args) {
if (isset($match[1]) && array_key_exists($match[1], $args)) {
return $args[$match[1]];
}
if (isset($match[2]) && array_key_exists($match[2], $args)) {
if (!is_array($args[$match[2]])) {
return $args[$match[2]];
}
$i++;
return $args[$match[2]][$i - 1];
}
return $match[0];
}, $url);
}
return $url;
}