/** * @group entity * @group role */ public function testListAllRolesIsCached() { $cacheKey = zbase_cache_key(zbase_entity('user_roles'), 'listAllRoles'); $roles = zbase_entity('user_roles')->listAllRoles(); $this->assertTrue(is_array($roles)); $this->assertTrue(zbase_cache_has($cacheKey, [zbase_entity('user_roles')->getTable()], ['driver' => 'file'])); }
/** * Return a value from cache else save new * * @param string $key * @param \Closure $callback * @param integer $minutes number of minutes to store items. Default: 60m * @return mixed */ function zbase_cache($key, \Closure $callback, array $tags = null, $minutes = 60, $options = array()) { if ($minutes === null) { $minutes = 60; } $logFile = !empty($options['logFile']) ? $options['logFile'] : __FUNCTION__; $logMsg = !empty($options['logMsg']) ? $options['logMsg'] : __FUNCTION__; if (zbase_cache_has($key, $tags, $options)) { zbase_log($key . ' -- CACHE HIT' . PHP_EOL . $logMsg, null, $logFile); return zbase_cache_get($key, $tags, $options); } zbase_log($key . ' -- CACHE MISS' . PHP_EOL . $logMsg, null, $logFile); /** * Force Cache Entity Level */ $forceCaching = zbase_config_get('db.cache.force', true); if (!empty($options['forceCache']) && !empty($forceCaching)) { $value = $callback(); zbase_cache_save($key, $value, $minutes, $tags, $options); return $value; } if (!zbase_cache_enable()) { return $callback(); } $value = $callback(); zbase_cache_save($key, $value, $minutes, $tags, $options); return $value; // return \Cache::remember($key, $minutes, $callback); }
/** * @group entity * @group caching */ public function testEntityByAttributeCached() { $entityName = 'user'; $attribute = 'username'; $value = 'adminx'; $cacheKey = zbase_cache_key(zbase_entity($entityName), 'by_' . $attribute . '_' . $value); $this->assertFalse(zbase_cache_has($cacheKey, [zbase_entity($entityName)->getTable()], ['driver' => 'file'])); $entity = zbase_entity($entityName)->by($attribute, $value); $this->assertTrue($entity->{$attribute} == $value); $this->assertTrue(zbase_cache_has($cacheKey, [zbase_entity($entityName)->getTable()], ['driver' => 'file'])); $data = ['username' => 'cacheusernameupdatebyattribute']; $entity->fill($data)->save(); $this->assertFalse(zbase_cache_has($cacheKey, [zbase_entity($entityName)->getTable()], ['driver' => 'file'])); $data = ['username' => $value]; $entity->fill($data)->save(); $this->assertFalse(zbase_cache_has($cacheKey, [zbase_entity($entityName)->getTable()], ['driver' => 'file'])); }