cs/symfony-vagrant-kernel

当Vagrant box通过网络共享主机源目录时,此工具可以加快Symfony的速度。

v1.0.0 2014-10-04 18:36 UTC

This package is auto-updated.

Last update: 2024-09-29 03:36:32 UTC


README

此软件包可以在使用Vagrant时加快您的Symfony开发安装。

如果您的应用程序驻留在主机操作系统的驱动器上,并且通过网络与Vagrant box共享,那么symfony缓存和日志的I/O将会降低您的性能。此内核扩展会将您的应用程序配置为将缓存和日志存储在/dev/shm。

我唯一能想到的缺点是,一旦关闭Vagrant box,整个缓存(可能包括会话)将会丢失。哦,/dev/shm可能就是为了共享而设计的...

警告!此软件包不适用于生产环境。使用风险自负!警告!日志将存储在/dev/shm/(symfony2|projectname)/logs。

安装

"cs/symfony-vagrant-kernel": "1.0",添加到您的composer.json中。

将您的app/AppKernel.php中的use Symfony\Component\HttpKernel\Kernel;行更改为use CS\Vagrant\Kernel;

同一Vagrant box上的多个项目

如果您在同一Vagrant box上运行多个项目,那么您应该定义您的“项目名称”,这基本上是用于存储缓存的/dev/shm子目录的名称。如果您不这样做,那么请准备好混乱。

覆盖getProjectName方法,如下所示

protected function getProjectName()
{
    return 'some_unique_string_preferably_the_name_of_your_project';
}

配置何时尝试使用内存缓存。

默认情况下,内核将在以下条件满足时启用/dev/shm缓存

  • 您有可写的/dev/shm目录。
  • /home/vagrant存在于您的文件系统中。

您可以通过覆盖内核中的useMemoryCaching方法来更改最后一个条件。例如,如果您想始终在您的开发环境中使用此功能,可以这样做

protected function useMemoryCaching()
{
    return $this->getEnvironment() === 'dev';
}

其他考虑因素

我想您可以使用/tmp,但内存缓存听起来更好,不是吗?

致谢

此代码基于Benjamin Eberlei在2013年8月19日提出的想法,并由Jakub Kanclerz在2014年进一步扩展。