A few tweaks to arguments and how they are handled.
This commit is contained in:
parent
26945749c3
commit
c5e1a15f5a
@ -60,8 +60,7 @@ class Doctrine_Cli
|
|||||||
$taskInstance = new $taskClass();
|
$taskInstance = new $taskClass();
|
||||||
$taskInstance->taskName = str_replace('_', '-', Doctrine::tableize(str_replace('Doctrine_Cli_Task_', '', $taskName)));
|
$taskInstance->taskName = str_replace('_', '-', Doctrine::tableize(str_replace('Doctrine_Cli_Task_', '', $taskName)));
|
||||||
|
|
||||||
$args = $taskInstance->prepareArgs($args);
|
$args = $this->prepareArgs($taskInstance, $args);
|
||||||
$args = $this->prepareArgs($args);
|
|
||||||
|
|
||||||
$taskInstance->validate($args);
|
$taskInstance->validate($args);
|
||||||
|
|
||||||
@ -72,17 +71,40 @@ class Doctrine_Cli
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function prepareArgs($args)
|
protected function prepareArgs($taskInstance, $args)
|
||||||
{
|
{
|
||||||
|
$args = array_values($args);
|
||||||
|
|
||||||
|
$prepared = array();
|
||||||
|
|
||||||
|
$requiredArguments = $taskInstance->getRequiredArguments();
|
||||||
|
foreach ($requiredArguments as $key => $arg) {
|
||||||
|
$prepared[$arg] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$optionalArguments = $taskInstance->getOptionalArguments();
|
||||||
|
foreach ($optionalArguments as $key => $arg) {
|
||||||
|
$prepared[$arg] = null;
|
||||||
|
}
|
||||||
|
|
||||||
if (is_array($this->config) && !empty($this->config)) {
|
if (is_array($this->config) && !empty($this->config)) {
|
||||||
foreach ($this->config as $key => $value) {
|
foreach ($this->config as $key => $value) {
|
||||||
if (array_key_exists($key, $args)) {
|
if (array_key_exists($key, $prepared)) {
|
||||||
$args[$key] = $value;
|
$prepared[$key] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $args;
|
$copy = $args;
|
||||||
|
foreach ($prepared as $key => $value) {
|
||||||
|
if (!$value && !empty($copy)) {
|
||||||
|
$prepared[$key] = $copy[0];
|
||||||
|
unset($copy[0]);
|
||||||
|
$copy = array_values($copy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $prepared;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function printTasks()
|
public function printTasks()
|
||||||
|
@ -55,41 +55,6 @@ abstract class Doctrine_Cli_Task
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function prepareArgs($args)
|
|
||||||
{
|
|
||||||
$args = array_values($args);
|
|
||||||
|
|
||||||
$prepared = array();
|
|
||||||
$requiredArguments = $this->getRequiredArguments();
|
|
||||||
|
|
||||||
$count = 0;
|
|
||||||
foreach ($requiredArguments as $key => $arg) {
|
|
||||||
if (isset($args[$count])) {
|
|
||||||
$prepared[$arg] = $args[$count];
|
|
||||||
} else {
|
|
||||||
$prepared[$arg] = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$count++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$optionalArguments = $this->getOptionalArguments();
|
|
||||||
|
|
||||||
foreach ($optionalArguments as $key => $arg) {
|
|
||||||
if (isset($args[$count])) {
|
|
||||||
$prepared[$arg] = $args[$count];
|
|
||||||
} else {
|
|
||||||
$prepared[$arg] = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$count++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->arguments = $prepared;
|
|
||||||
|
|
||||||
return $prepared;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getArgument($name)
|
public function getArgument($name)
|
||||||
{
|
{
|
||||||
return $this->arguments[$name];
|
return $this->arguments[$name];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user