@@ -168,7 +168,7 @@ public function setRequired(array $optionNames)
168
168
*/
169
169
public function setAllowedValues (array $ allowedValues )
170
8000
170
{
171
- $ this ->validateOptionNames (array_keys ( $ allowedValues) );
171
+ $ this ->validateOptionNames ($ allowedValues );
172
172
173
173
$ this ->allowedValues = array_replace ($ this ->allowedValues , $ allowedValues );
174
174
@@ -191,7 +191,7 @@ public function setAllowedValues(array $allowedValues)
191
191
*/
192
192
public function addAllowedValues (array $ allowedValues )
193
193
{
194
- $ this ->validateOptionNames (array_keys ( $ allowedValues) );
194
+ $ this ->validateOptionNames ($ allowedValues );
195
195
196
196
$ this ->allowedValues = array_merge_recursive ($ this ->allowedValues , $ allowedValues );
197
197
@@ -243,7 +243,7 @@ public function isRequired($option)
243
243
*/
244
244
public function resolve (array $ options )
245
245
{
246
- $ this ->validateOptionNames (array_keys ( $ options) );
246
+ $ this ->validateOptionNames ($ options );
247
247
248
248
// Make sure this method can be called multiple times
249
249
$ combinedOptions = clone $ this ->defaultOptions ;
@@ -266,44 +266,36 @@ public function resolve(array $options)
266
266
* Validates that the given option names exist and throws an exception
267
267
* otherwise.
268
268
*
269
- * @param array $optionNames A list of option names.
269
+ * @param array $optionNames An list of option names as keys .
270
270
*
271
271
* @throws InvalidOptionsException If any of the options has not been
272
272
* defined.
273
273
* @throws MissingOptionsException If a required option is missing.
274
274
*/
275
275
private function validateOptionNames (array $ optionNames )
276
276
{
277
- ksort ($ this ->knownOptions );
278
-
279
- $ knownOptions = array_keys ($ this ->knownOptions );
280
- $ diff = array_diff ($ optionNames , $ knownOptions );
281
-
282
- sort ($ diff );
277
+ $ diff = array_diff_key ($ optionNames , $ this ->knownOptions );
283
278
284
279
if (count ($ diff ) > 0 ) {
285
- if (count ($ diff ) > 1 ) {
286
- throw new InvalidOptionsException (sprintf ('The options "%s" do not exist. Known options are: "%s" ' , implode ('", " ' , $ diff ), implode ('", " ' , $ knownOptions )));
287
- }
288
-
289
- throw new InvalidOptionsException (sprintf ('The option "%s" does not exist. Known options are: "%s" ' , current ($ diff ), implode ('", " ' , $ knownOptions )));
280
+ ksort ($ this ->knownOptions );
281
+ ksort ($ diff );
282
+
283
+ throw new InvalidOptionsException (sprintf (
284
+ (count ($ diff ) > 1 ? 'The options "%s" do not exist. ' : 'The option "%s" does not exist. ' ) . ' Known options are: "%s" ' ,
285
+ implode ('", " ' , array_keys ($ diff )),
286
+ implode ('", " ' , array_keys ($ this ->knownOptions ))
287
+ ));
290
288
}
291
289
292
- ksort ($ this ->requiredOptions );
293
-
294
- $ requiredOptions = array_keys ($ this ->requiredOptions );
295
- $ diff = array_diff ($ requiredOptions , $ optionNames );
296
-
297
- sort ($ diff );
290
+ $ diff = array_diff_key ($ this ->requiredOptions , $ optionNames );
298
291
299
292
if (count ($ diff ) > 0 ) {
300
- if (count ($ diff ) > 1 ) {
301
- throw new MissingOptionsException (sprintf ('The required options "%s" are missing. ' ,
302
- implode ('",
303
- " ' , $ diff )));
304
- }
293
+ ksort ($ diff );
305
294
306
- throw new MissingOptionsException (sprintf ('The required option "%s" is missing. ' , current ($ diff )));
295
+ throw new MissingOptionsException (sprintf (
296
+ count ($ diff ) > 1 ? 'The required options "%s" are missing. ' : 'The required option "%s" is missing. ' ,
297
+ implode ('", " ' , array_keys ($ diff ))
298
+ ));
307
299
}
308
300
}
309
301
0 commit comments