PhpBrew\VariantBuilder::buildVariant PHP Method

buildVariant() public method

Build options from variant.
public buildVariant ( Build $build, string $feature, string $userValue = null ) : array
$build Build
$feature string variant name
$userValue string option value.
return array
    public function buildVariant(Build $build, $feature, $userValue = null)
    {
        if (!isset($this->variants[$feature])) {
            throw new Exception("Variant '{$feature}' is not defined.");
        }
        // Skip if we've built it
        if (in_array($feature, $this->builtList)) {
            return array();
        }
        // Skip if we've disabled it
        if (isset($this->disables[$feature])) {
            return array();
        }
        $this->builtList[] = $feature;
        $cb = $this->variants[$feature];
        if (is_array($cb)) {
            return $cb;
        } elseif (is_string($cb)) {
            return array($cb);
        } elseif (is_callable($cb)) {
            $args = is_string($userValue) ? array($build, $userValue) : array($build);
            return (array) call_user_func_array($cb, $args);
        } else {
            throw new OopsException();
        }
    }