/** * Check that the given options contain all required keys. * * @param array $options * @param array $keys * * @return void * * @throws CommandException * If any required options are missing. */ private function checkRequired(array $options, array $keys) { $missing = array_keys(array_diff_key(array_flip($keys), $options)); if (!empty($missing)) { throw CommandException::missingOptions($missing); } }
/** * @inheritDoc * * @return array */ public function options() { $required = $this->requiredOptions(); if ($required) { $missing = array_diff($required, array_keys($this->options)); if ($missing) { throw CommandException::missingOptions($missing); } } $this->options += $this->defaultOptions(); return $this->options; }