/** * {@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; }
public function orEndsWith($suffix) { return $this->orX(Expr::endsWith($suffix)); }
public function testAppendDefaultQuerySuffixForEndsWith() { $expr1 = Expr::endsWith('.css', AssetMapping::GLOB); $expr2 = Expr::same(BindingState::ENABLED, BindingDescriptor::STATE)->andSame(DiscoveryUrlGenerator::BINDING_TYPE, BindingDescriptor::TYPE_NAME)->andEndsWith('{,/**/*}', BindingDescriptor::QUERY)->andEndsWith('.css{,/**/*}', BindingDescriptor::QUERY); $this->assertEquals($expr2, $this->builder->buildExpression($expr1)); }
/** * {@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 testFindRootInstallerDescriptors() { $this->populateRootManager(); $descriptor1 = new InstallerDescriptor('symlink', 'SymlinkInstaller'); $descriptor2 = new InstallerDescriptor('copy', 'CopyInstaller'); $expr1 = Expr::same('symlink', InstallerDescriptor::NAME); $expr2 = Expr::endsWith('Installer', InstallerDescriptor::CLASS_NAME); $this->assertEquals(array($descriptor1), $this->manager->findRootInstallerDescriptors($expr1)); $this->assertEquals(array($descriptor1, $descriptor2), $this->manager->findRootInstallerDescriptors($expr2)); }
public function testRemovePackages() { $this->initDefaultManager(); $packageDir = $this->packageDir1; $this->packageFileStorage->expects($this->once())->method('saveRootPackageFile')->with($this->rootPackageFile)->will($this->returnCallback(function (RootPackageFile $rootPackageFile) use($packageDir) { PHPUnit_Framework_Assert::assertFalse($rootPackageFile->hasInstallInfo('vendor/package1')); PHPUnit_Framework_Assert::assertFalse($rootPackageFile->hasInstallInfo('vendor/package2')); PHPUnit_Framework_Assert::assertTrue($rootPackageFile->hasInstallInfo('vendor/package3')); })); $this->rootPackageFile->addInstallInfo($this->installInfo3); $this->assertTrue($this->rootPackageFile->hasInstallInfo('vendor/package1')); $this->assertTrue($this->rootPackageFile->hasInstallInfo('vendor/package2')); $this->assertTrue($this->rootPackageFile->hasInstallInfo('vendor/package3')); $this->assertTrue($this->manager->hasPackage('vendor/root')); $this->assertTrue($this->manager->hasPackage('vendor/package1')); $this->assertTrue($this->manager->hasPackage('vendor/package2')); $this->assertTrue($this->manager->hasPackage('vendor/package3')); $this->manager->removePackages(Expr::key(Package::NAME, Expr::endsWith('1')->orEndsWith('2'))); $this->assertFalse($this->rootPackageFile->hasInstallInfo('vendor/package1')); $this->assertFalse($this->rootPackageFile->hasInstallInfo('vendor/package2')); $this->assertTrue($this->rootPackageFile->hasInstallInfo('vendor/package3')); $this->assertTrue($this->manager->hasPackage('vendor/root')); $this->assertFalse($this->manager->hasPackage('vendor/package1')); $this->assertFalse($this->manager->hasPackage('vendor/package2')); $this->assertTrue($this->manager->hasPackage('vendor/package3')); }
public function andEndsWith($suffix) { return $this->andX(Expr::endsWith($suffix)); }