Skip to content

Instantly share code, notes, and snippets.

@sasezaki
Created January 24, 2016 14:49
Show Gist options
  • Save sasezaki/45350fc533a3283f5094 to your computer and use it in GitHub Desktop.
Save sasezaki/45350fc533a3283f5094 to your computer and use it in GitHub Desktop.
<?php
use Zend\Paginator\Paginator;
use Zend\Db\Adapter\Adapter;
use Zend\Cache\StorageFactory;
use Zend\Db\TableGateway\TableGateway;
require_once 'vendor/autoload.php';
$adapter = new Zend\Db\Adapter\Adapter(array(
'driver' => 'Pdo_Sqlite',
'database' => 'sqlite.db'
));
$tableGateway = new \Zend\Db\TableGateway\TableGateway('user', $adapter);
$select = $tableGateway->getSql()->select();
$cache = StorageFactory::adapterFactory('filesystem', [
'cache_dir' => 'cache',
'ttl' => 600
]);
$cache->addPlugin(StorageFactory::pluginFactory('serializer'));
Paginator::setCache($cache);
//$paginator = new Paginator(new Zend\Paginator\Adapter\DbSelect($select, $adapter));
$paginator = new Paginator(new Zend\Paginator\Adapter\DbTableGateway(new TableGateway('user',$adapter)));
echo 'Cache used:', PHP_EOL;
var_dump($paginator->getTotalItemCount()); // 111
$insert = "INSERT INTO USER (username, email, password) VALUES('aa112','a112@example.com', 'AAA');";
$adapter->query($insert, Adapter::QUERY_MODE_EXECUTE);
$insert = "INSERT INTO USER (username, email, password) VALUES('aa113','a113@example.com', 'AAA');";
$adapter->query($insert, Adapter::QUERY_MODE_EXECUTE);
var_dump($paginator->getTotalItemCount()); //111
var_dump(count($paginator->getItemsByPage(12))); // 3
var_dump($paginator->getTotalItemCount()); //111
$insert = "INSERT INTO USER (username, email, password) VALUES('aa114','a114@example.com', 'AAA');";
$adapter->query($insert, Adapter::QUERY_MODE_EXECUTE);
$insert = "INSERT INTO USER (username, email, password) VALUES('aa115','a115@example.com', 'AAA');";
$adapter->query($insert, Adapter::QUERY_MODE_EXECUTE);
var_dump($paginator->getTotalItemCount()); // 111
var_dump(count($paginator->getItemsByPage(12))); // 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment