32 throw new \Magento\Framework\Exception\LocalizedException(
34 "Invalid value for the node <slab_size>. Expected to be positive integer." 41 $this->_options[
'slab_size'] =
$options[
'slab_size'];
54 return "{$id}[{$index}]";
66 for (
$i = 0;
$i < $chunks;
$i++) {
82 public function save(
$data,
$id, $tags = [], $specificLifetime =
false)
84 if (is_string(
$data) && strlen(
$data) > $this->_options[
'slab_size']) {
85 $dataChunks = str_split(
$data, $this->_options[
'slab_size']);
87 for (
$i = 0, $cnt = count($dataChunks);
$i < $cnt;
$i++) {
90 if (!parent::save($dataChunks[
$i], $chunkId, $tags, $specificLifetime)) {
96 $data = self::CODE_WORD .
'|' .
$i;
99 return parent::save(
$data,
$id, $tags, $specificLifetime);
109 public function load(
$id, $doNotTestCacheValidity =
false)
111 $data = parent::load(
$id, $doNotTestCacheValidity);
113 if (is_string(
$data) && substr(
$data, 0, strlen(self::CODE_WORD)) == self::CODE_WORD) {
116 $arr = explode(
'|',
$data);
117 $chunks = isset($arr[1]) ? $arr[1] :
false;
120 if ($chunks && is_numeric($chunks)) {
121 for (
$i = 0;
$i < $chunks;
$i++) {
122 $chunk = parent::load($this->
_getChunkId(
$id,
$i), $doNotTestCacheValidity);
124 if (
false === $chunk) {
132 $chunkData[] = $chunk;
135 return implode(
'', $chunkData);
save($data, $id, $tags=[], $specificLifetime=false)
load($id, $doNotTestCacheValidity=false)
__construct(array $options=[])
_cleanTheMess($id, $chunks)