123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- <?php
-
-
- namespace Doctrine\Common\Cache;
-
-
- abstract class AbstractCache implements Cache
- {
-
- private $_namespace = '';
-
-
-
- public function setNamespace($namespace)
- {
- $this->_namespace = (string) $namespace;
- }
-
-
-
- public function fetch($id)
- {
- return $this->_doFetch($this->_getNamespacedId($id));
- }
-
-
-
- public function contains($id)
- {
- return $this->_doContains($this->_getNamespacedId($id));
- }
-
-
-
- public function save($id, $data, $lifeTime = 0)
- {
- return $this->_doSave($this->_getNamespacedId($id), $data, $lifeTime);
- }
-
-
-
- public function delete($id)
- {
- $id = $this->_getNamespacedId($id);
-
- if (strpos($id, '*') !== false) {
- return $this->deleteByRegex('/' . str_replace('*', '.*', $id) . '/');
- }
-
- return $this->_doDelete($id);
- }
-
-
-
- public function deleteAll()
- {
- $ids = $this->getIds();
-
- foreach ($ids as $id) {
- $this->_doDelete($id);
- }
-
- return $ids;
- }
-
-
-
- public function deleteByRegex($regex)
- {
- $ids = $this->getIds();
- $deleted = array();
-
- foreach ($ids as $id) {
- if (preg_match($regex, $id)) {
- $this->_doDelete($id);
- $deleted[] = $id;
- }
- }
-
- return $deleted;
- }
-
-
-
- public function deleteByPrefix($prefix)
- {
- $prefix = $this->_getNamespacedId($prefix);
- $ids = $this->getIds();
- $deleted = array();
-
- foreach ($ids as $id) {
- if (strpos($id, $prefix) === 0) {
- $this->_doDelete($id);
- $deleted[] = $id;
- }
- }
-
- return $deleted;
- }
-
-
-
- public function deleteBySuffix($suffix)
- {
- $ids = $this->getIds();
- $deleted = array();
-
- foreach ($ids as $id) {
- if (substr($id, -1 * strlen($suffix)) === $suffix) {
- $this->_doDelete($id);
- $deleted[] = $id;
- }
- }
-
- return $deleted;
- }
-
-
-
- private function _getNamespacedId($id)
- {
- return $this->_namespace . $id;
- }
-
-
-
- abstract protected function _doFetch($id);
-
-
-
- abstract protected function _doContains($id);
-
-
-
- abstract protected function _doSave($id, $data, $lifeTime = false);
-
-
-
- abstract protected function _doDelete($id);
-
-
-
- abstract public function getIds();
- }
|