/** * @param RequiresConfig $factory * @param mixed $currentDimension Current configuration key * @param string $configId * @return InvalidArgumentException */ public static function missingOptions(RequiresConfig $factory, $currentDimension, $configId) { $position = []; $dimensions = $factory->dimensions(); if ($factory instanceof RequiresConfigId) { $dimensions[] = $configId; } foreach ($dimensions as $dimension) { $position[] = $dimension; if ($dimension === $currentDimension) { break; } } if ($factory instanceof RequiresConfigId && $configId === null && count($dimensions) === count($position)) { return new static(rtrim(sprintf('The configuration "%s" needs a config id.', implode('.', $position)), '.')); } return new static(sprintf('No options set for configuration "%s"', implode('.', $position))); }
/** * Retrieve options */ public function benchOptions() { $this->factory->options($this->config, $this->configId); }