cs / symfony-vagrant-kernel
当Vagrant box通过网络共享主机源目录时,此工具可以加快Symfony的速度。
Requires
- php: >=5.4
- symfony/http-kernel: >=2.3.0
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年进一步扩展。