public function convertCallback($name)
{
if (is_array($name)) {
list($cls, $method) = $name;
if (is_array($method)) {
$params = $method;
$callback = $this->resolveCallback($cls);
return function () use($callback, $params) {
return call_user_func_array($callback, $params);
};
}
} elseif (strpos($name, '::') > 0) {
$parts = explode('::', $name);
$cls = reset($parts);
$method = end($parts);
} else {
return parent::convertCallback($name);
}
if (isset($this->classmap[$cls])) {
$service = $this->classmap[$cls];
return parent::convertCallback("{$service}:{$method}");
}
return [$this->instantiateClass($cls), $method];
}