本文整理汇总了PHP中Zend\Cache\Storage\StorageInterface::setTags方法的典型用法代码示例。如果您正苦于以下问题:PHP StorageInterface::setTags方法的具体用法?PHP StorageInterface::setTags怎么用?PHP StorageInterface::setTags使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Cache\Storage\StorageInterface
的用法示例。
在下文中一共展示了StorageInterface::setTags方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testTagable
public function testTagable()
{
if (!$this->_storage instanceof TaggableInterface) {
$this->markTestSkipped("Storage doesn't implement TaggableInterface");
}
$this->assertSame(array(), $this->_storage->setItems(array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3')));
$this->assertTrue($this->_storage->setTags('key1', array('tag1a', 'tag1b')));
$this->assertTrue($this->_storage->setTags('key2', array('tag2a', 'tag2b')));
$this->assertTrue($this->_storage->setTags('key3', array('tag3a', 'tag3b')));
$this->assertFalse($this->_storage->setTags('missing', array('tag')));
// return tags
$tags = $this->_storage->getTags('key1');
$this->assertInternalType('array', $tags);
sort($tags);
$this->assertSame(array('tag1a', 'tag1b'), $tags);
// this should remove nothing
$this->assertTrue($this->_storage->clearByTags(array('tag1a', 'tag2a')));
$this->assertTrue($this->_storage->hasItem('key1'));
$this->assertTrue($this->_storage->hasItem('key2'));
$this->assertTrue($this->_storage->hasItem('key3'));
// this should remove key1 and key2
$this->assertTrue($this->_storage->clearByTags(array('tag1a', 'tag2b'), true));
$this->assertFalse($this->_storage->hasItem('key1'));
$this->assertFalse($this->_storage->hasItem('key2'));
$this->assertTrue($this->_storage->hasItem('key3'));
// this should remove key3
$this->assertTrue($this->_storage->clearByTags(array('tag3a', 'tag3b'), true));
$this->assertFalse($this->_storage->hasItem('key1'));
$this->assertFalse($this->_storage->hasItem('key2'));
$this->assertFalse($this->_storage->hasItem('key3'));
}
示例2: getItemsByPage
/**
* Returns the items for a given page.
*
* @param integer $pageNumber
* @return mixed
*/
public function getItemsByPage($pageNumber)
{
$pageNumber = $this->normalizePageNumber($pageNumber);
if ($this->cacheEnabled()) {
$data = self::$cache->getItem($this->_getCacheId($pageNumber));
if ($data) {
return $data;
}
}
$offset = ($pageNumber - 1) * $this->getItemCountPerPage();
$items = $this->adapter->getItems($offset, $this->getItemCountPerPage());
$filter = $this->getFilter();
if ($filter !== null) {
$items = $filter->filter($items);
}
if (!$items instanceof Traversable) {
$items = new ArrayIterator($items);
}
if ($this->cacheEnabled()) {
$cacheId = $this->_getCacheId($pageNumber);
self::$cache->setItem($cacheId, $items);
self::$cache->setTags($cacheId, array($this->_getCacheInternalId()));
}
return $items;
}
示例3: addItem
/**
* Ajoute un item au cache et le tag avec "id:nomId" de l'utilisateur connecté.
* @param type $key
* @param type $data
*/
protected function addItem($key, $data)
{
$auth = $this->service->get('zfcuser_auth_service');
$tag = $auth->hasIdentity() ? $auth->getIdentity()->getId() . ':' . $auth->getIdentity()->getUsername() : "undefined";
$this->cache->addItem($key, $data);
$this->cache->setTags($key, array($tag));
}
示例4: testTaggableFunctionsOnEmptyStorage
/**
* @group 6878
*/
public function testTaggableFunctionsOnEmptyStorage()
{
if (!$this->_storage instanceof TaggableInterface) {
$this->markTestSkipped("Storage doesn't implement TaggableInterface");
}
$this->assertFalse($this->_storage->setTags('unknown', ['no']));
$this->assertFalse($this->_storage->getTags('unknown'));
$this->assertTrue($this->_storage->clearByTags(['unknown']));
}
示例5: getActiveModulesList
/**
* Get active modules list
*
* @return array
*/
public function getActiveModulesList()
{
// generate cache name
$cacheName = CacheUtility::getCacheName(self::CACHE_MODULES_ACTIVE);
// check data in cache
if (null === ($modulesList = $this->staticCacheInstance->getItem($cacheName))) {
$select = $this->select();
$select->from('application_module')->columns(['id', 'name'])->where(['status' => self::MODULE_STATUS_ACTIVE])->order('id');
$statement = $this->prepareStatementForSqlObject($select);
$resultSet = new ResultSet();
$resultSet->initialize($statement->execute());
foreach ($resultSet as $module) {
$modulesList[$module->id] = $module->name;
}
// save data in cache
$this->staticCacheInstance->setItem($cacheName, $modulesList);
$this->staticCacheInstance->setTags($cacheName, [self::CACHE_MODULES_DATA_TAG]);
}
return $modulesList;
}
示例6: onKernelResponse
/**
* Triggered after controller and view calls
*
* @param FilterResponseEvent $event
*/
public function onKernelResponse(FilterResponseEvent $event)
{
$request = $event->getRequest();
$response = $event->getResponse();
if ($event->getRequestType() === HttpKernelInterface::MASTER_REQUEST && $request->isMethodSafe()) {
$key = $this->getKeyFromRequest($request);
$response->setLastModified(new \DateTime());
// If no cache request header exists - do nothing
if ($request->isNoCache() || !$response->isSuccessful()) {
return;
//TODO redirects cache
}
// If response does not exists - put it to cache
if (!$this->storage->hasItem($key)) {
$response->setTtl($this->storage->getOptions()->getTtl());
$data = ['content' => $response->getContent(), 'status' => $response->getStatusCode(), 'headers' => $response->headers->all()];
$this->storage->addItem($key, $data);
if ($this->storage instanceof TaggableInterface) {
$this->storage->setTags($key, $tags);
}
}
}
}