@sl0

Как получить cacheDir в произвольном классе?

Достался в наследство старый бандл с классом 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 в этом случае?
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы