<?php
/**
* @Cacheable(caches="followers", key="#user.getUsername()")
*/
public function getAllFollowersForUser(User $user)
{
return $followers;
}
/**
* @CacheEvict(caches="followers", key="#user.getUsername()", beforeInvocation=true)
*/
public function regenerateFollowersList(User $user)
{
$followers = $this->getAllFollowersForUser($user);
$this->flattenFollowerList($user, $followers);
}
/**
* @Cacheable(caches="followers", key="[#user.getUsername(), 'flat']")
*/
public function flattenFollowerList(User $user, $followers)
{
// ...
return $flatFollowerList;
}