/** * {@inheritdoc} */ public function leaveExpression(Expression $expr) { if ($expr instanceof Method) { switch ($expr->getMethodName()) { case 'getUuid': return Expr::method('getUuid', $expr->getExpression()); case 'getGlob': $queryExpr = $expr->getExpression(); if ($queryExpr instanceof Same) { $queryExpr = Expr::same($queryExpr->getComparedValue() . '{,/**/*}'); } elseif ($queryExpr instanceof Equals) { $queryExpr = Expr::equals($queryExpr->getComparedValue() . '{,/**/*}'); } elseif ($queryExpr instanceof NotSame) { $queryExpr = Expr::notSame($queryExpr->getComparedValue() . '{,/**/*}'); } elseif ($queryExpr instanceof NotEquals) { $queryExpr = Expr::notEquals($queryExpr->getComparedValue() . '{,/**/*}'); } elseif ($queryExpr instanceof EndsWith) { $queryExpr = Expr::endsWith($queryExpr->getAcceptedSuffix() . '{,/**/*}'); } return Expr::method('getBinding', Expr::method('getQuery', $queryExpr)); case 'getServerName': return Expr::method('getParameterValue', DiscoveryUrlGenerator::SERVER_PARAMETER, $expr->getExpression()); case 'getServerPath': return Expr::method('getParameterValue', DiscoveryUrlGenerator::PATH_PARAMETER, $expr->getExpression()); } } return $expr; }
/** * {@inheritdoc} */ public function leaveExpression(Expression $expr) { if ($expr instanceof Key) { switch ($expr->getKey()) { case AssetMapping::UUID: return Expr::key(BindingDescriptor::UUID, $expr->getExpression()); case AssetMapping::GLOB: $queryExpr = $expr->getExpression(); if ($queryExpr instanceof Same) { $queryExpr = Expr::same($queryExpr->getComparedValue() . '{,/**/*}'); } elseif ($queryExpr instanceof Equals) { $queryExpr = Expr::equals($queryExpr->getComparedValue() . '{,/**/*}'); } elseif ($queryExpr instanceof NotSame) { $queryExpr = Expr::notSame($queryExpr->getComparedValue() . '{,/**/*}'); } elseif ($queryExpr instanceof NotEquals) { $queryExpr = Expr::notEquals($queryExpr->getComparedValue() . '{,/**/*}'); } elseif ($queryExpr instanceof EndsWith) { $queryExpr = Expr::endsWith($queryExpr->getAcceptedSuffix() . '{,/**/*}'); } return Expr::key(BindingDescriptor::QUERY, $queryExpr); case AssetMapping::SERVER_NAME: return Expr::key(BindingDescriptor::PARAMETER_VALUES, Expr::key(DiscoveryUrlGenerator::SERVER_PARAMETER, $expr->getExpression())); case AssetMapping::SERVER_PATH: return Expr::key(BindingDescriptor::PARAMETER_VALUES, Expr::key(DiscoveryUrlGenerator::PATH_PARAMETER, $expr->getExpression())); } } return $expr; }
public function orEquals($value) { return $this->orX(Expr::equals($value)); }
public function testAppendDefaultQuerySuffixForEquals() { $expr1 = Expr::equals('/path', AssetMapping::GLOB); $expr2 = Expr::same(BindingState::ENABLED, BindingDescriptor::STATE)->andSame(DiscoveryUrlGenerator::BINDING_TYPE, BindingDescriptor::TYPE_NAME)->andEndsWith('{,/**/*}', BindingDescriptor::QUERY)->andEquals('/path{,/**/*}', BindingDescriptor::QUERY); $this->assertEquals($expr2, $this->builder->buildExpression($expr1)); }
public function andEquals($value) { return $this->andX(Expr::equals($value)); }