/** * Required by the Countable interface. * @return int */ public function count() { return $this->result->getRowCount(); }
<!DOCTYPE html><link rel="stylesheet" href="data/style.css"> <h1>Using Extension Methods | dibi</h1> <?php if (@(!(include __DIR__ . '/../vendor/autoload.php'))) { die('Install dependencies using `composer install --dev`'); } Tracy\Debugger::enable(); dibi::connect(array('driver' => 'sqlite3', 'database' => 'data/sample.s3db')); // using the "prototype" to add custom method to class DibiResult DibiResult::extensionMethod('fetchShuffle', function (DibiResult $obj) { $all = $obj->fetchAll(); shuffle($all); return $all; }); // fetch complete result set shuffled $res = dibi::query('SELECT * FROM [customers]'); $all = $res->fetchShuffle(); Tracy\Dumper::dump($all);
function DibiResult_prototype_fetchShuffle(DibiResult $obj) { $all = $obj->fetchAll(); shuffle($all); return $all; }
/** * Result set factory. * @param IDibiResultDriver * @return DibiResult */ public function createResultSet(IDibiResultDriver $resultDriver) { $res = new DibiResult($resultDriver); return $res->setFormat(dibi::DATE, $this->config['result']['formatDate'])->setFormat(dibi::DATETIME, $this->config['result']['formatDateTime']); }
/** * Moves forward to next element. * @return void */ public function next() { //$this->result->seek($this->offset + $this->pointer + 1); $this->row = $this->result->fetch(); $this->pointer++; }
function DibiResult_prototype_fetchArray(DibiResult $obj, $key) { return array_keys($obj->fetchAssoc($key)); }
public final function fetch() { return $this->result->fetch(); }