Достался в наследство старый бандл с классом Excel, который через PhpOffice\PhpSpreadsheet записывает данные в файл.
У него следующий конструктор:
public function __construct(array $options = [])
{
$this->cachePath = sys_get_temp_dir().'/excel/excel'.random_int(0, 100000);
Settings::setCache(new Psr16Cache(new FilesystemAdapter(
basename($this->cachePath), 3600, \dirname($this->cachePath)
)));
...
В результате временные файлы идут в /tmp сервера и не удаляются. Задача состоит в том, чтобы кэш записывался в стандартный /var/cache/prod/...
Проблема в том, что я не могу ничего добавить в конструктор, т.к. много где класс вызывается в виде
$document = new Excel($options);
Прибить гвоздями по типу
$this->cachePath = 'var/cache/prod/'
тоже нельзя, т.е. переменная среды не везде prod.
Как получить можно получить cacheDir в этом случае?