Stash\Driver\FileSystem\NativeEncoder::serialize PHP Method

serialize() public method

public serialize ( $key, $data, $expiration = null )
    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;
    }