Nelmio\Alice\Generator\Resolver\Fixture\TemplatingFixtureBag::with PHP Method

with() public method

public with ( Nelmio\Alice\FixtureInterface $fixture ) : self
$fixture Nelmio\Alice\FixtureInterface
return self
    public function with(FixtureInterface $fixture) : self
    {
        $clone = clone $this;
        if ($fixture instanceof TemplatingFixture && $fixture->isATemplate()) {
            $clone->templates = $clone->templates->with($fixture);
        } else {
            $clone->fixtures = $clone->fixtures->with($fixture);
        }
        return $clone;
    }

Usage Example

Example #1
0
 /**
  * Resolves a given fixture. The resolution of a fixture may result in the resolution of several fixtures.
  *
  * @param TemplatingFixture|FixtureInterface $fixture Fixture to resolve
  * @param FixtureBag                         $unresolvedFixtures
  * @param TemplatingFixtureBag               $resolvedFixtures
  * @param ResolvingContext                   $context
  *
  * @throws FixtureNotFoundException
  *
  * @return TemplatingFixtureBag
  */
 public function resolve(TemplatingFixture $fixture, FixtureBag $unresolvedFixtures, TemplatingFixtureBag $resolvedFixtures, ResolvingContext $context) : TemplatingFixtureBag
 {
     $context->checkForCircularReference($fixture->getId());
     if (false === $fixture->extendsFixtures()) {
         return $resolvedFixtures->with($fixture);
     }
     /**
      * @var FixtureBag           $extendedFixtures
      * @var TemplatingFixtureBag $resolvedFixtures
      */
     list($extendedFixtures, $resolvedFixtures) = $this->resolveExtendedFixtures($fixture, $fixture->getExtendedFixturesReferences(), $unresolvedFixtures, $resolvedFixtures, $context);
     $fixture = $this->getExtendedFixture($fixture, $extendedFixtures);
     return $resolvedFixtures->with($fixture);
 }