В Codeigniter встроено практически то, что вы описываете. Они называют его драйвером кэширования: http://codeigniter.com/user_guide/libraries/caching.html
В вашем случае вы захотите запустить его следующим образом:
$this->load->driver('cache', array('adapter' => 'file', 'backup' => 'file'));
if ( ! $foo = $this->cache->get('foo'))
{
echo 'Saving to the cache!<br />';
$foo = 'foobarbaz!';
// Save into the cache for 5 minutes
$this->cache->save('foo', $foo, 300);
}
echo json_encode($foo);
Запишет данные кеша в файл.
Недостатком в вашем случае является то, что CI сериализует данные в файле кэша, а не использует JSON.Я полагаю, вы могли бы переопределить драйвер, используя json_encode () вместо serialize ().Приведенный выше метод потребует немного ресурсов, поскольку он будет сериализировать И использовать кодировку json на выходе.