Skip to content

Commit 3c45ae5

Browse files
authored
Merge pull request #53 from utopia-php/feat-param-alias
Feat: Param aliases
2 parents 145b91f + a92806c commit 3c45ae5

4 files changed

Lines changed: 53 additions & 22 deletions

File tree

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
},
1818
"require": {
1919
"php": ">=7.4",
20-
"utopia-php/servers": "0.3.*"
20+
"utopia-php/servers": "0.4.0"
2121
},
2222
"require-dev": {
2323
"utopia-php/console": "0.0.*",

composer.lock

Lines changed: 20 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/CLI/CLI.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,18 @@ protected function getParams(Hook $hook): array
300300
$params = [];
301301

302302
foreach ($hook->getParams() as $key => $param) {
303-
$value = (isset($this->args[$key])) ? $this->args[$key] : $param['default'];
303+
$value = $param['default'];
304+
305+
if (isset($this->args[$key])) {
306+
$value = $this->args[$key];
307+
} else {
308+
foreach ($param['aliases'] ?? [] as $alias) {
309+
if (isset($this->args[$alias])) {
310+
$value = $this->args[$alias];
311+
break;
312+
}
313+
}
314+
}
304315

305316
$this->validate($key, $param, $value);
306317

tests/CLI/CLITest.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,4 +427,24 @@ public function testEscaping()
427427

428428
$this->assertEquals($database, $result);
429429
}
430+
431+
public function testParamAliases()
432+
{
433+
ob_start();
434+
435+
$cli = new CLI(new Generic(), ['test.php', 'build', '--e=me@example.com']); // Mock command request using alias
436+
437+
$cli
438+
->task('build')
439+
->param('email', null, new Text(0), 'Valid email address', false, [], false, false, '', null, ['e', 'em'])
440+
->action(function ($email) {
441+
echo $email;
442+
});
443+
444+
$cli->run();
445+
446+
$result = ob_get_clean();
447+
448+
$this->assertEquals('me@example.com', $result);
449+
}
430450
}

0 commit comments

Comments
 (0)