<?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; } }