Skip to content

Commit 12535eb

Browse files
committed
removed collection since the implementation is putting complexity without benefits on it
1 parent 8616475 commit 12535eb

File tree

6 files changed

+93
-424
lines changed

6 files changed

+93
-424
lines changed

Example/run.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
$arguments = new \Net\Bazzline\Component\Cli\Arguments\Arguments($argv);
1010

1111
if ($arguments->hasArguments()) {
12-
echo 'arguments provided:' . PHP_EOL;
12+
echo $arguments->getNumberOfArguments() . ' arguments provided:' . PHP_EOL;
1313
foreach ($arguments->getArguments() as $argument) {
1414
echo ' ' . $argument . PHP_EOL;
1515
}
@@ -18,7 +18,7 @@
1818
}
1919

2020
if ($arguments->hasLists()) {
21-
echo 'lists provided:' . PHP_EOL;
21+
echo $arguments->getNumberOfLists() . ' lists provided:' . PHP_EOL;
2222
foreach ($arguments->getLists() as $name => $values) {
2323
echo ' ' . $name . PHP_EOL;
2424
foreach ($values as $value) {
@@ -30,7 +30,7 @@
3030
}
3131

3232
if ($arguments->hasFlags()) {
33-
echo 'flags provided:' . PHP_EOL;
33+
echo $arguments->getNumberOfFlags() . ' flags provided:' . PHP_EOL;
3434
foreach ($arguments->getFlags() as $flag) {
3535
echo ' ' . $flag . PHP_EOL;
3636
}
@@ -39,7 +39,7 @@
3939
}
4040

4141
if ($arguments->hasValues()) {
42-
echo 'values provided:' . PHP_EOL;
42+
echo $arguments->getNumberOfValues() . ' values provided:' . PHP_EOL;
4343
foreach ($arguments->getValues() as $value) {
4444
echo ' ' . $value . PHP_EOL;
4545
}

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -166,15 +166,14 @@ Your code has to take care if an argument is passed or not anyways. Using the av
166166
* upcomming
167167
* @todo
168168
* add *hasFlags* to easy up validation if long or short flag is set (e.g. '-v|--verbose')
169-
* cover Collection and Parser with unit tests
170-
* updated dependency handling by beeing less restrictive
171-
* [2.0.0](https://github.com/bazzline/php_component_cli_argument/tree/2.0.0) - not yet released
172-
* add *convertToArray()'
173-
* add *convertToString()'
174-
* add *getNumberOfElements()*
175-
* create classes for flags, lists and values
176-
* remove *generate_api*
177-
* replace "setArguments" with "parseArguments" like [nette](https://github.com/nette/command-line/blob/master/src/CommandLine/Parser.php) is doing it
169+
* cover Parser with unit tests
170+
* [1.2.0](https://github.com/bazzline/php_component_cli_argument/tree/1.2.0) - released at 28.11.2015
171+
* added *convertToArray()'
172+
* added *convertToString()'
173+
* added *getNumberOf[Arguments|Flags|Lists|Values]
174+
* removed *generate_api*
175+
* replaced "setArguments" with "parseArguments" like [nette](https://github.com/nette/command-line/blob/master/src/CommandLine/Parser.php) is doing it
176+
* updated dependency handling by being less restrictive (added lower limit for phpunit)
178177
* [1.1.2](https://github.com/bazzline/php_component_cli_argument/tree/1.1.2) - released at 07.11.2015
179178
* updated dependencies
180179
* [1.1.1](https://github.com/bazzline/php_component_cli_argument/tree/1.1.1) - released at 18.08.2015

source/Net/Bazzline/Component/Cli/Arguments/Arguments.php

Lines changed: 59 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@ class Arguments
1111
/** @var array */
1212
private $arguments;
1313

14-
/** @var Collection */
14+
/** @var array */
1515
private $flags;
1616

17-
/** @var Collection */
17+
/** @var array */
1818
private $lists;
1919

2020
/** @var Parser */
2121
private $parser;
2222

23-
/** @var Collection */
23+
/** @var array */
2424
private $values;
2525

2626
/**
@@ -34,7 +34,7 @@ public function __construct($argv = null, $removeFirstArgument = true)
3434
if (is_array($argv)) {
3535
$this->parseArguments($argv, $removeFirstArgument);
3636
} else {
37-
$this->bindValuesFromGenerator();
37+
$this->setArgumentsFromParser($this->parser);
3838
}
3939
}
4040

@@ -47,68 +47,70 @@ public function getArguments()
4747
}
4848

4949
/**
50-
* @param bool $convertCollectionToArray
51-
* @return array|Collection
50+
* @return array
5251
*/
53-
public function getFlags($convertCollectionToArray = true)
52+
public function getFlags()
5453
{
55-
return (
56-
$this->convertCollectionToArrayIfNeeded(
57-
$this->flags,
58-
$convertCollectionToArray
59-
)
60-
);
54+
return $this->flags;
6155
}
6256

6357
/**
6458
* @param string $name
65-
* @param bool $convertCollectionToArray
66-
* @return null|Collection
59+
* @return null|array
6760
*/
68-
public function getList($name, $convertCollectionToArray = true)
61+
public function getList($name)
6962
{
70-
$list = $this->lists->offsetGet($name);
63+
return (isset($this->lists[$name]))
64+
? $this->lists[$name]
65+
: null;
66+
}
7167

72-
if ($list instanceof Collection) {
73-
$return = (
74-
$this->convertCollectionToArrayIfNeeded(
75-
$list,
76-
$convertCollectionToArray
77-
)
78-
);
79-
} else {
80-
$return = null;
81-
}
68+
/**
69+
* @return int
70+
*/
71+
public function getNumberOfArguments()
72+
{
73+
return (count($this->arguments));
74+
}
75+
76+
/**
77+
* @return int
78+
*/
79+
public function getNumberOfFlags()
80+
{
81+
return (count($this->flags));
82+
}
83+
84+
/**
85+
* @return int
86+
*/
87+
public function getNumberOfLists()
88+
{
89+
return (count($this->lists));
90+
}
8291

83-
return $return;
92+
/**
93+
* @return int
94+
*/
95+
public function getNumberOfValues()
96+
{
97+
return (count($this->values));
8498
}
8599

86100
/**
87-
* @param bool $convertCollectionToArray
88-
* @return array|Collection
101+
* @return array
89102
*/
90-
public function getLists($convertCollectionToArray = true)
103+
public function getLists()
91104
{
92-
return (
93-
$this->convertCollectionToArrayIfNeeded(
94-
$this->lists,
95-
$convertCollectionToArray
96-
)
97-
);
105+
return $this->lists;
98106
}
99107

100108
/**
101-
* @param bool $convertCollectionToArray
102-
* @return array|Collection
109+
* @return array
103110
*/
104-
public function getValues($convertCollectionToArray = true)
111+
public function getValues()
105112
{
106-
return (
107-
$this->convertCollectionToArrayIfNeeded(
108-
$this->values,
109-
$convertCollectionToArray
110-
)
111-
);
113+
return $this->values;
112114
}
113115

114116
/**
@@ -125,15 +127,15 @@ public function hasArguments()
125127
*/
126128
public function hasFlag($name)
127129
{
128-
return $this->flags->containsValue($name);
130+
return (in_array($name, $this->flags));
129131
}
130132

131133
/**
132134
* @return bool
133135
*/
134136
public function hasFlags()
135137
{
136-
return (!$this->flags->isEmpty());
138+
return (!empty($this->flags));
137139
}
138140

139141
/**
@@ -142,23 +144,23 @@ public function hasFlags()
142144
*/
143145
public function hasList($name)
144146
{
145-
return $this->lists->containsKey($name);
147+
return (isset($this->lists[$name]));
146148
}
147149

148150
/**
149151
* @return bool
150152
*/
151153
public function hasLists()
152154
{
153-
return (!$this->lists->isEmpty());
155+
return (!empty($this->lists));
154156
}
155157

156158
/**
157159
* @return bool
158160
*/
159161
public function hasValues()
160162
{
161-
return (!$this->values->isEmpty());
163+
return (!empty($this->values));
162164
}
163165

164166
/**
@@ -173,8 +175,8 @@ public function parseArguments(array $argv, $removeFirstArgument = true)
173175
}
174176

175177
$this->arguments = $argv;
176-
$this->parse($this->arguments);
177-
$this->bindValuesFromGenerator();
178+
$this->parser->parse($this->arguments);
179+
$this->setArgumentsFromParser($this->parser);
178180

179181
return $this;
180182
}
@@ -203,33 +205,13 @@ public function __toString()
203205
return $this->convertToString();
204206
}
205207

206-
private function parse(array $arguments)
207-
{
208-
$parser = $this->parser;
209-
210-
$parser->parse($arguments);
211-
}
212-
213-
private function bindValuesFromGenerator()
208+
/**
209+
* @param Parser $parser
210+
*/
211+
private function setArgumentsFromParser(Parser $parser)
214212
{
215-
$parser = $this->parser;
216-
217213
$this->flags = $parser->getFlags();
218214
$this->lists = $parser->getLists();
219215
$this->values = $parser->getValues();
220216
}
221-
222-
/**
223-
* @param Collection $collection
224-
* @param bool $isNeeded
225-
* @return array|Collection
226-
*/
227-
private function convertCollectionToArrayIfNeeded(Collection $collection, $isNeeded)
228-
{
229-
return (
230-
$isNeeded
231-
? $collection->convertToArray()
232-
: $collection
233-
);
234-
}
235217
}

0 commit comments

Comments
 (0)