PhpBench\Extensions\Dbal\Storage\Driver\Dbal\Repository::getIterationRows PHP Метод

getIterationRows() публичный Метод

public getIterationRows ( PhpBench\Expression\Constraint\Constraint $constraint )
$constraint PhpBench\Expression\Constraint\Constraint
    public function getIterationRows(Constraint $constraint)
    {
        $this->tokenVisitor->visit($constraint);
        list($sql, $values) = $this->sqlVisitor->visit($constraint);
        $conn = $this->manager->getConnection();
        $stmt = $conn->prepare($sql);
        $stmt->execute($values);
        $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
        return $rows;
    }

Usage Example

Пример #1
0
 /**
  * Load a SuiteCollection for the given query (constraint).
  *
  * @param Constraint $constraint
  *
  * @return SuiteCollection
  */
 public function load(Constraint $constraint)
 {
     $rows = $this->repository->getIterationRows($constraint);
     $context = new \ArrayObject([self::BENCHMARKS => [], self::SUBJECTS => [], self::VARIANTS => [], self::SUITES => []]);
     foreach ($rows as $row) {
         $suite = $this->getSuite($context, $row);
         $benchmark = $this->getBenchmark($context, $suite, $row);
         $subject = $this->getSubject($context, $benchmark, $row);
         $variant = $this->getVariant($context, $subject, $row);
         $iteration = new Iteration(0, $variant, [new TimeResult((int) $row['iteration.time']), new MemoryResult((int) $row['iteration.memory'], 0, 0)]);
         $variant->addIteration($iteration);
     }
     foreach ($context[self::SUITES] as $suite) {
         foreach ($suite->getVariants() as $variant) {
             $variant->computeStats();
         }
     }
     return new SuiteCollection($context[self::SUITES]);
 }