public function getArgument($name, $includeBase = true)
{
if (!is_int($name)) {
Assert::string($name, 'The argument name must be a string or integer. Got: %s');
Assert::notEmpty($name, 'The argument name must not be empty.');
}
Assert::boolean($includeBase, 'The parameter $includeBase must be a boolean. Got: %s');
if (is_int($name)) {
$arguments = array_values($this->getArguments($includeBase));
if (!isset($arguments[$name])) {
throw NoSuchArgumentException::forPosition($name);
}
} else {
$arguments = $this->getArguments($includeBase);
if (!isset($arguments[$name])) {
throw NoSuchArgumentException::forArgumentName($name);
}
}
return $arguments[$name];
}