First install laminas-cache and laminas-serializer:
$ composer require laminas/laminas-cache laminas/laminas-serializer
Then use a cache for paginator:
require_once __DIR__ . '/vendor/autoload.php';
// Create cache
$cache = Laminas\Cache\StorageFactory::factory(
[
'adapter' => [
'name' => Laminas\Cache\Storage\Adapter\Filesystem::class,
'options' => [
'cache_dir' => __DIR__ . '/tmp',
'ttl' => 3600,
],
],
'plugins' => [
Laminas\Cache\Storage\Plugin\Serializer::class,
],
]
);
// Set cache for each paginator
Laminas\Paginator\Paginator::setCache($cache);
// Create paginator
$data = range(1, 100);
$paginator = new Laminas\Paginator\Paginator(
new Laminas\Paginator\Adapter\ArrayAdapter($data)
);
// Fetch items and store items in cache
$items = $paginator->getCurrentItems();
https://docs.laminas.dev/laminas-cache/storage/adapter/#quick-start
https://docs.laminas.dev/laminas-cache/storage/plugin/#the-serializer-plugin