Puli\Manager\Repository\RepositoryManagerImpl::findPathMappings PHP Method

findPathMappings() public method

public findPathMappings ( Webmozart\Expression\Expression $expr )
$expr Webmozart\Expression\Expression
    public function findPathMappings(Expression $expr)
    {
        $this->assertMappingsLoaded();
        $mappings = array();
        foreach ($this->mappings->toArray() as $mappingsByModule) {
            foreach ($mappingsByModule as $mapping) {
                if ($expr->evaluate($mapping)) {
                    $mappings[] = $mapping;
                }
            }
        }
        return $mappings;
    }

Usage Example

 public function testFindPathMappings()
 {
     $this->initDefaultManager();
     $this->rootPackageFile->addPathMapping($mapping1 = new PathMapping('/path1', 'resources'));
     $this->packageFile1->addPathMapping($mapping2 = new PathMapping('/path2', 'resources'));
     $this->packageFile2->addPathMapping($mapping3 = new PathMapping('/path1', 'resources'));
     $expr1 = Expr::same('/path1', PathMapping::REPOSITORY_PATH);
     $expr2 = $expr1->andSame('vendor/root', PathMapping::CONTAINING_PACKAGE);
     $expr3 = $expr1->andSame('vendor/package1', PathMapping::CONTAINING_PACKAGE);
     $this->assertSame(array($mapping1, $mapping3), $this->manager->findPathMappings($expr1));
     $this->assertSame(array($mapping1), $this->manager->findPathMappings($expr2));
     $this->assertSame(array(), $this->manager->findPathMappings($expr3));
 }