silverstripe-framework/tests/php/ORM/DataObjectTest/DataListQueryCounter.php

43 lines
1.0 KiB
PHP

<?php
namespace SilverStripe\ORM\Tests\DataObjectTest;
use SilverStripe\ORM\DataQuery;
/**
* This is designed around the chunk method so we can count the number of queries run.
*/
class DataListQueryCounter extends DataQuery
{
private $queryCount = 0;
/**
* When the DataList gets clone our reference to parent will be attached to our cloned DataListQueryCounter. So all
* DataListQueryCounter::parent will point back to the original one that go created by with the constructor.
* @var DataListQueryCounter
*/
private $parent;
public function __construct($dataClass)
{
parent::__construct($dataClass);
$this->parent = $this;
}
public function getFinalisedQuery($queriedColumns = null)
{
$this->increment();
return parent::getFinalisedQuery($queriedColumns);
}
private function increment()
{
$this->parent->queryCount++;
}
public function getCount()
{
return $this->parent->queryCount;
}
}