| Name | Size | Mode | Actions |
|---|---|---|---|
| AbstractAdapter.php | 8327 | 0644 | editdlrm |
| AbstractTagAwareAdapter.php | 12537 | 0644 | editdlrm |
| AdapterInterface.php | 963 | 0644 | editdlrm |
| ApcuAdapter.php | 3959 | 0644 | editdlrm |
| ArrayAdapter.php | 11183 | 0644 | editdlrm |
| ChainAdapter.php | 8968 | 0644 | editdlrm |
| CouchbaseBucketAdapter.php | 7729 | 0644 | editdlrm |
| CouchbaseCollectionAdapter.php | 6705 | 0644 | editdlrm |
| DoctrineAdapter.php | 2845 | 0644 | editdlrm |
| DoctrineDbalAdapter.php | 15355 | 0644 | editdlrm |
| FilesystemAdapter.php | 933 | 0644 | editdlrm |
| FilesystemTagAwareAdapter.php | 7584 | 0644 | editdlrm |
| MemcachedAdapter.php | 13749 | 0644 | editdlrm |
| NullAdapter.php | 2657 | 0644 | editdlrm |
| ParameterNormalizer.php | 898 | 0644 | editdlrm |
| PdoAdapter.php | 20331 | 0644 | editdlrm |
| PhpArrayAdapter.php | 12537 | 0644 | editdlrm |
| PhpFilesAdapter.php | 10260 | 0644 | editdlrm |
| ProxyAdapter.php | 8469 | 0644 | editdlrm |
| Psr16Adapter.php | 1941 | 0644 | editdlrm |
| RedisAdapter.php | 1200 | 0644 | editdlrm |
| RedisTagAwareAdapter.php | 12218 | 0644 | editdlrm |
| TagAwareAdapter.php | 11387 | 0644 | editdlrm |
| TagAwareAdapterInterface.php | 775 | 0644 | editdlrm |
| TraceableAdapter.php | 6931 | 0644 | editdlrm |
| TraceableTagAwareAdapter.php | 932 | 0644 | editdlrm |
/usr/share/php/Symfony/Component/Cache/Adapter/TraceableAdapter.php (6931B)
*/ class TraceableAdapter implements AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface { protected $pool; private $calls = []; public function __construct(AdapterInterface $pool) { $this->pool = $pool; } /** * {@inheritdoc} */ public function get(string $key, callable $callback, float $beta = null, array &$metadata = null): get { if (!$this->pool instanceof CacheInterface) { throw new \BadMethodCallException(sprintf('Cannot call "%s::get()": this class doesn\'t implement "%s".', get_debug_type($this->pool), CacheInterface::class)); } $isHit = true; $callback = function (CacheItem $item, bool &$save) use ($callback, &$isHit) { $isHit = $item->isHit(); return $callback($item, $save); }; $event = $this->start(__FUNCTION__); try { $value = $this->pool->get($key, $callback, $beta, $metadata); $event->result[$key] = get_debug_type($value); } finally { $event->end = microtime(true); } if ($isHit) { ++$event->hits; } else { ++$event->misses; } return $value; } /** * {@inheritdoc} */ public function getItem($key) { $event = $this->start(__FUNCTION__); try { $item = $this->pool->getItem($key); } finally { $event->end = microtime(true); } if ($event->result[$key] = $item->isHit()) { ++$event->hits; } else { ++$event->misses; } return $item; } /** * {@inheritdoc} * * @return bool */ public function hasItem($key) { $event = $this->start(__FUNCTION__); try { return $event->result[$key] = $this->pool->hasItem($key); } finally { $event->end = microtime(true); } } /** * {@inheritdoc} * * @return bool */ public function deleteItem($key) { $event = $this->start(__FUNCTION__); try { return $event->result[$key] = $this->pool->deleteItem($key); } finally { $event->end = microtime(true); } } /** * {@inheritdoc} * * @return bool */ public function save(CacheItemInterface $item) { $event = $this->start(__FUNCTION__); try { return $event->result[$item->getKey()] = $this->pool->save($item); } finally { $event->end = microtime(true); } } /** * {@inheritdoc} * * @return bool */ public function saveDeferred(CacheItemInterface $item) { $event = $this->start(__FUNCTION__); try { return $event->result[$item->getKey()] = $this->pool->saveDeferred($item); } finally { $event->end = microtime(true); } } /** * {@inheritdoc} */ public function getItems(array $keys = []) { $event = $this->start(__FUNCTION__); try { $result = $this->pool->getItems($keys); } finally { $event->end = microtime(true); } $f = function () use ($result, $event) { $event->result = []; foreach ($result as $key => $item) { if ($event->result[$key] = $item->isHit()) { ++$event->hits; } else { ++$event->misses; } yield $key => $item; } }; return $f(); } /** * {@inheritdoc} * * @return bool */ public function clear(string $prefix = '') { $event = $this->start(__FUNCTION__); try { if ($this->pool instanceof AdapterInterface) { return $event->result = $this->pool->clear($prefix); } return $event->result = $this->pool->clear(); } finally { $event->end = microtime(true); } } /** * {@inheritdoc} * * @return bool */ public function deleteItems(array $keys) { $event = $this->start(__FUNCTION__); $event->result['keys'] = $keys; try { return $event->result['result'] = $this->pool->deleteItems($keys); } finally { $event->end = microtime(true); } } /** * {@inheritdoc} * * @return bool */ public function commit() { $event = $this->start(__FUNCTION__); try { return $event->result = $this->pool->commit(); } finally { $event->end = microtime(true); } } /** * {@inheritdoc} */ public function prune() { if (!$this->pool instanceof PruneableInterface) { return false; } $event = $this->start(__FUNCTION__); try { return $event->result = $this->pool->prune(); } finally { $event->end = microtime(true); } } /** * {@inheritdoc} */ public function reset() { if ($this->pool instanceof ResetInterface) { $this->pool->reset(); } $this->clearCalls(); } /** * {@inheritdoc} */ public function delete(string $key): bool { $event = $this->start(__FUNCTION__); try { return $event->result[$key] = $this->pool->deleteItem($key); } finally { $event->end = microtime(true); } } public function getCalls() { return $this->calls; } public function clearCalls() { $this->calls = []; } protected function start(string $name) { $this->calls[] = $event = new TraceableAdapterEvent(); $event->name = $name; $event->start = microtime(true); return $event; } } class TraceableAdapterEvent { public $name; public $start; public $end; public $result; public $hits = 0; public $misses = 0; }