存储Symfony 2缓存其他?

vin*_*nux 3 caching symfony

有没有办法将symfony 2缓存(app/cache)存储在除文件系统之外的其他地方?Memcache,S3还是什么?任何内置选项?

Jak*_*las 6

您只能通过重载AppKernel类中的getCacheDir()方法将其移动到项目目录之外.

把它移到Memcache有什么意义?此目录的内容大多数时候是"已编译"的类和模板.无论如何,这些文件都被放入内存(APC就是这样).

编辑:在开发时,很难避免I/O,但您可以通过重写AppKernel getCacheDir()getLogDir()方法将Symfony的缓存目录轻松移动到内存中,以指向它们/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();
    }
}
Run Code Online (Sandbox Code Playgroud)

资料来源:http://www.whitewashing.de/2013/08/19/speedup_symfony2_on_vagrant_boxes.html