mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
43 lines
1.0 KiB
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;
|
||
|
}
|
||
|
}
|