Symfony has a very powerful built-in caching. You can use it directly by calling the default app cache and use it.
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
//....
function getCachedData()
{
/**
* @var FilesystemAdapter $cache
*/
$cache = $this->get('cache.app');
//Define a key for the item
$cacheKey = 'SOME_UNIQUE_KEY';
//Fetch the cached item from the cache
$cacheItem = $cache->getItem($cacheKey);
//Check if the cache is present and is still valid.
if ($cacheItem->isHit()) {
//Get the cached value and return
$data = $cache->getItem($cacheKey)->get();
return $data;
}
//Since there is no cache available you can prepare the data
$data = [10,20,30];
//Set the data to cache object
$cacheItem->set($data);
//You can set an expire time if you need.
//Below I have set the cache to 1 hour.
$cacheItem->expiresAfter(60 * 60);
//Save the cache
$cache->save($cacheItem);
//Return the data
return $data;
}
//....
You can use this a lot in your application in places where you access databases or accessing the web services.
Have a great day 😊