public function serialize($key, $data, $expiration = null)
{
$storeString = '<?php ' . PHP_EOL . '/* Cachekey: ' . str_replace('*/', '', $key) . ' */' . PHP_EOL . '/* Type: ' . gettype($data) . ' */' . PHP_EOL . '/* Expiration: ' . (isset($expiration) ? date(DATE_W3C, $expiration) : 'none') . ' */' . PHP_EOL . PHP_EOL . PHP_EOL . PHP_EOL . '$loaded = true;' . PHP_EOL;
if (isset($expiration)) {
$storeString .= '$expiration = ' . $expiration . ';' . PHP_EOL;
}
$storeString .= PHP_EOL;
if (is_array($data)) {
$storeString .= "\$data = array();" . PHP_EOL;
foreach ($data as $key => $value) {
$dataString = $this->encode($value);
$keyString = "'" . str_replace("'", "\\'", $key) . "'";
$storeString .= PHP_EOL;
$storeString .= '/* Child Type: ' . gettype($value) . ' */' . PHP_EOL;
$storeString .= "\$data[{$keyString}] = {$dataString};" . PHP_EOL;
}
} else {
$dataString = $this->encode($data);
$storeString .= '/* Type: ' . gettype($data) . ' */' . PHP_EOL;
$storeString .= "\$data = {$dataString};" . PHP_EOL;
}
return $storeString;
}