Хранить кеш Symfony 2 еще было?

Есть ли способ хранить кэш Symfony 2 (приложение / кеш) где-нибудь еще, кроме файловой системы? Memcache, S3 или что-то еще? Любой встроенный вариант?

Ответы на вопрос(2)

Решение Вопроса

Вы можете переместить его только за пределы каталога проекта, перегрузив метод getCacheDir () в классе AppKernel.

Какой смысл переносить его в Memcache? Содержимое этого каталога большую часть времени «компилируется» классы и шаблоны. Эти файлы в любом случае помещаются в память (это делает APC).

EditВо время разработки труднее избежать ввода-вывода, но вы можете легко переместить каталог кэша Symfony в память, переопределив AppKernel.getCacheDir() а такжеgetLogDir() методы, чтобы указать им/dev/shm:

class AppKernel extends Kernel
{
    // ...

    public function getCacheDir()
    {
        if (in_array($this->environment, array('dev', 'test'))) {
            return '/dev/shm/appname/cache/' .  $this->environment;
        }

        return parent::getCacheDir();
    }

    public function getLogDir()
    {
        if (in_array($this->environment, array('dev', 'test'))) {
            return '/dev/shm/appname/logs';
        }

        return parent::getLogDir();
    }
}

Источник:http://www.whitewashing.de/2013/08/19/speedup_symfony2_on_vagrant_boxes.html

 vinnylinux28 мая 2012 г., 17:23
Дело в том, чтобы устранить ввод / вывод.
 01 июн. 2012 г., 21:52
APC кэширует код операции, но он все еще не ударил по каждому файлу, чтобы проверить времена модификации, если они были изменены? Может быть какое-то значение в указании директории кеша на / dev / shm, чтобы они хранились на виртуальном диске даже для этих крошечных операций ввода-вывода. (Я не могу представить, чтобы что-либо из этого имело бы значение в любом практическом смысле ... но, тем не менее, интересная мысль)
 11 июн. 2012 г., 11:32
Нет, на prod у вас должен быть отключен apc.stat, чтобы избежать проверок времени модификации.
 28 мая 2012 г., 18:21
Поскольку APC кэширует ваши файлы в памяти, ввода / вывода нет (ну, только в первый раз). В любом случае, это все равно что пытаться поместить все ваши файлы PHP soure в Memcached, S3, что угодно ...
 30 июл. 2013 г., 00:28
@JakubZalas Распределенный кеш также может быть здесь полезен. Если вы используете несколько веб-серверов

Вы можете использовать Gaufrette (https://github.com/KnpLabs/Gaufrette, https://github.com/KnpLabs/KnpGaufretteBundle) создать виртуальную файловую систему практически из любого хранилища (APC, память, S3, FTP, SQL db). Затем установите cache-dir вgaufrette://s3 например.

 22 сент. 2014 г., 14:45
Gaufrette не позволит вам хранить кэш Symfony в памяти.

Ваш ответ на вопрос