Locates the cache folder and ensures that the Symfony Cache is routed to that folder.
Contrary to the way Symfony regularly works, the cache folder can be provided by the configuration and should be set at runtime.
This class plays two roles in this process:
- It exposes a Path that can dynamically change, this will allow other services not to depend on an actual path being passed in their constructor (which is cached by Symfony!) but this service so that their cache actions use the folder that is provided at runtime.
- It will initialize the Symfony Cache pools on runtime
As long as all components that want to cache use this class; then that will ensure that cache is always written to the same location.
Caveat: this class does not change the location of the Symfony 'app' and 'system' cache pools by design; the Symfony internal cache is still stored in folder dictated by Kernel::getCacheDir().
- $descriptorCache : CacheInterface|FilesystemAdapter
- $fileCache : CacheInterface|FilesystemAdapter
- $path : Path|null
private CacheInterface|FilesystemAdapter $descriptorCache
private CacheInterface|FilesystemAdapter $fileCache
private Path|null $path = null
public __construct(CacheInterface $files, CacheInterface $descriptors) : mixed
- $files : CacheInterface
- $descriptors : CacheInterface
public locate([string $namespace = '' ]) : Path
- $namespace : string = ''
public providePath(Path $path) : void
- $path : Path
private root() : Path