public function create($name, $args = []) { if (!isset($this->definitions[$name])) { throw new IllegalCallException("Factory does not posses definition for [{$name}]."); } return call_user_func_array($this->definitions[$name], (array) $args); }