Puli\Manager\Api\Repository\PathMapping::getConflictingMappings PHP Method

getConflictingMappings() public method

The method {@link load()} needs to be called before calling this method, otherwise an exception is thrown.
public getConflictingMappings ( ) : PathMapping[]
return PathMapping[] The conflicting path mappings.
    public function getConflictingMappings()
    {
        if (null === $this->state) {
            throw new NotLoadedException('The mapping is not loaded.');
        }
        $conflictingMappings = array();
        foreach ($this->conflicts as $conflict) {
            foreach ($conflict->getMappings() as $mapping) {
                if ($this === $mapping) {
                    continue;
                }
                $conflictingMappings[spl_object_hash($mapping)] = $mapping;
            }
        }
        return array_values($conflictingMappings);
    }

Usage Example

Beispiel #1
0
 public function testGetConflictingMappings()
 {
     $mapping1 = new PathMapping('/path', 'resources');
     $mapping1->load($this->package1, $this->packages);
     $this->assertCount(0, $mapping1->getConflictingMappings());
     $mapping2 = new PathMapping('/path', 'resources');
     $mapping2->load($this->package2, $this->packages);
     $conflict = new PathConflict('/path/conflict');
     $mapping1->addConflict($conflict);
     $mapping2->addConflict($conflict);
     $this->assertCount(1, $mapping1->getConflictingMappings());
     $this->assertContains($mapping2, $mapping1->getConflictingMappings());
     $this->assertCount(1, $mapping2->getConflictingMappings());
     $this->assertContains($mapping1, $mapping2->getConflictingMappings());
     $mapping3 = new PathMapping('/path', 'resources');
     $mapping3->load($this->package3, $this->packages);
     $mapping3->addConflict($conflict);
     $this->assertCount(2, $mapping1->getConflictingMappings());
     $this->assertContains($mapping2, $mapping1->getConflictingMappings());
     $this->assertContains($mapping3, $mapping1->getConflictingMappings());
     $this->assertCount(2, $mapping2->getConflictingMappings());
     $this->assertContains($mapping1, $mapping2->getConflictingMappings());
     $this->assertContains($mapping3, $mapping2->getConflictingMappings());
     $this->assertCount(2, $mapping3->getConflictingMappings());
     $this->assertContains($mapping1, $mapping3->getConflictingMappings());
     $this->assertContains($mapping2, $mapping3->getConflictingMappings());
 }