StackFormation\ValueResolver\Stage\ConditionalValue::isTrue PHP Method

isTrue() public method

Evaluate is key 'is true'
public isTrue ( $condition, Blueprint $sourceBlueprint = null ) : boolean
$condition
$sourceBlueprint StackFormation\Blueprint
return boolean
    public function isTrue($condition, Blueprint $sourceBlueprint = null)
    {
        // resolve placeholders
        $condition = $this->valueResolver->resolvePlaceholders($condition, $sourceBlueprint, 'conditional_value', $condition);
        if ($condition == 'default') {
            return true;
        }
        if (strpos($condition, '==') !== false) {
            list($left, $right) = explode('==', $condition, 2);
            $left = trim($left);
            $right = trim($right);
            return $left == $right;
        } elseif (strpos($condition, '!=') !== false) {
            list($left, $right) = explode('!=', $condition, 2);
            $left = trim($left);
            $right = trim($right);
            return $left != $right;
        } elseif (strpos($condition, '~=') !== false) {
            list($subject, $pattern) = explode('~=', $condition, 2);
            $subject = trim($subject);
            $pattern = trim($pattern);
            return preg_match($pattern, $subject);
        }
        throw new \Exception('Invalid condition: ' . $condition);
    }

Usage Example

 /**
  * @param string $key
  * @throws \Exception
  * @test
  * @dataProvider invalidConditionProvider
  */
 public function invalidCondition($key)
 {
     $this->setExpectedException('Exception', 'Invalid condition');
     $this->conditionalValueStage->isTrue($key);
 }
ConditionalValue