Skip to content

Commit

Permalink
extract ResolvesActionViaDI::buildActionHelp() method
Browse files Browse the repository at this point in the history
  • Loading branch information
klimov-paul committed Aug 16, 2023
1 parent e04079a commit 6e2d08a
Showing 1 changed file with 37 additions and 24 deletions.
61 changes: 37 additions & 24 deletions src/console/ResolvesActionViaDI.php
Original file line number Diff line number Diff line change
Expand Up @@ -128,37 +128,50 @@ public function getOptionHelp()
foreach ($class->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
$name = $method->getName();
if (!strncasecmp($name, 'action', 6) && strlen($name) > 6) {
$name = substr($name, 6);
$name[0] = strtolower($name[0]);
$help = $name;
$options[] = $this->buildActionHelp($method);
}
}

foreach ($method->getParameters() as $param) {
if ($param->hasType() && !$param->getType()->isBuiltin()) {
continue;
}
return $options;
}

$optional = $param->isDefaultValueAvailable();
$defaultValue = $optional ? $param->getDefaultValue() : null;
if (is_array($defaultValue)) {
$defaultValue = str_replace(["\r\n", "\n", "\r"], '', print_r($defaultValue, true));
}
$name = $param->getName();
/**
* Builds help text for the particular console command action.
*
* @since 1.0.2
*
* @param \ReflectionMethod $method action method reflection.
* @return string help text.
*/
protected function buildActionHelp(ReflectionMethod $method): string
{
$name = substr($method->getName(), 6);
$name[0] = strtolower($name[0]);
$help = $name;

if ($name === 'args') {
continue;
}
foreach ($method->getParameters() as $param) {
if ($param->hasType() && !$param->getType()->isBuiltin()) {
continue;
}

if ($optional) {
$help .= " [--$name=$defaultValue]";
} else {
$help .= " --$name=value";
}
}
$optional = $param->isDefaultValueAvailable();
$defaultValue = $optional ? $param->getDefaultValue() : null;
if (is_array($defaultValue)) {
$defaultValue = str_replace(["\r\n", "\n", "\r"], '', print_r($defaultValue, true));
}
$name = $param->getName();

$options[] = $help;
if ($name === 'args') {
continue;
}

if ($optional) {
$help .= " [--$name=$defaultValue]";
} else {
$help .= " --$name=value";
}
}

return $options;
return $help;
}
}

0 comments on commit 6e2d08a

Please sign in to comment.