--- /dev/null
+<?php
+
+namespace League\Container\Definition;
+
+class CallableDefinition extends AbstractDefinition
+{
+ /**
+ * {@inheritdoc}
+ */
+ public function build(array $args = [])
+ {
+ $args = (empty($args)) ? $this->arguments : $args;
+ $resolved = $this->resolveArguments($args);
+
+ if (is_array($this->concrete) && is_string($this->concrete[0])) {
+ $this->concrete[0] = ($this->getContainer()->has($this->concrete[0]))
+ ? $this->getContainer()->get($this->concrete[0])
+ : $this->concrete[0];
+ }
+
+ return call_user_func_array($this->concrete, $resolved);
+ }
+}