<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Cache\Traits; /** * @author Nicolas Grekas <p@tchwork.com> * * @internal */ trait DoctrineTrait { private $provider; /** * {@inheritdoc} */ public function reset() { parent::reset(); $this->provider->setNamespace($this->provider->getNamespace()); } /** * {@inheritdoc} */ protected function doFetch(array $ids) { $unserializeCallbackHandler = ini_set('unserialize_callback_func', parent::class.'::handleUnserializeCallback'); try { return $this->provider->fetchMultiple($ids); } catch (\Error $e) { $trace = $e->getTrace(); if (isset($trace[0]['function']) && !isset($trace[0]['class'])) { switch ($trace[0]['function']) { case 'unserialize': case 'apcu_fetch': case 'apc_fetch': throw new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine()); } } throw $e; } finally { ini_set('unserialize_callback_func', $unserializeCallbackHandler); } } /** * {@inheritdoc} */ protected function doHave($id) { return $this->provider->contains($id); } /** * {@inheritdoc} */ protected function doClear($namespace) { $namespace = $this->provider->getNamespace(); return isset($namespace[0]) ? $this->provider->deleteAll() : $this->provider->flushAll(); } /** * {@inheritdoc} */ protected function doDelete(array $ids) { $ok = true; foreach ($ids as $id) { $ok = $this->provider->delete($id) && $ok; } return $ok; } /** * {@inheritdoc} */ protected function doSave(array $values, $lifetime) { return $this->provider->saveMultiple($values, $lifetime); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
AbstractAdapterTrait.php | File | 3.5 KB | 0644 |
|
AbstractTrait.php | File | 8.44 KB | 0644 |
|
ApcuTrait.php | File | 3.09 KB | 0644 |
|
ArrayTrait.php | File | 4.31 KB | 0644 |
|
ContractsTrait.php | File | 3.41 KB | 0644 |
|
DoctrineTrait.php | File | 2.21 KB | 0644 |
|
FilesystemCommonTrait.php | File | 3.9 KB | 0644 |
|
FilesystemTrait.php | File | 2.77 KB | 0644 |
|
MemcachedTrait.php | File | 12.09 KB | 0644 |
|
PdoTrait.php | File | 16.91 KB | 0644 |
|
PhpArrayTrait.php | File | 4.41 KB | 0644 |
|
PhpFilesTrait.php | File | 8.13 KB | 0644 |
|
ProxyTrait.php | File | 817 B | 0644 |
|
RedisClusterProxy.php | File | 1.66 KB | 0644 |
|
RedisProxy.php | File | 1.77 KB | 0644 |
|
RedisTrait.php | File | 19.46 KB | 0644 |
|