コード例 #1
0
 /**
  * @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']));
 }
コード例 #2
0
ファイル: cache.php プロジェクト: claremontdesign/zbase
/**
 * 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);
}
コード例 #3
0
ファイル: EntityTest.php プロジェクト: claremontdesign/zbase
 /**
  * @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']));
 }