Vagrant&Symfony 3.3:无法删除目录

Clá*_*iro 10 php symfony vagrant

尝试使用Flex设置Symfony 3.3环境.目前,当尝试要求一些类似以下的包时:

composer req annotations security orm template asset validator
Run Code Online (Sandbox Code Playgroud)

一切顺利,除了缓存:清除我收到以下错误:

!!    [Symfony\Component\Filesystem\Exception\IOException]                         
!!    Failed to remove directory "/home/vagrant/Code/multi-user-gallery-blog/var/  
!!    cache/loca~/pools": rmdir(/home/vagrant/Code/multi-user-gallery-blog/var/ca  
!!    che/loca~/pools): Directory not empty. 
Run Code Online (Sandbox Code Playgroud)

我已经尝试手动删除文件夹,但这些文件夹是在安装过程中自动生成的,然后Symfony无法删除它们.

我在Vagrant Homestead上运行这个.

关于如何解决这个问题的任何想法?

Cy *_*nol 5

这是Vagrant/VirtualBox在主机和客户机之间映射共享文件夹的方式的问题.在Symfony项目中,缓存目录通常放在从主机同步的项目目录中.

我们可以通过在app/AppKernel.php类中添加覆盖方法来更改缓存目录以使用来宾计算机文件系统中的位置来避免这些问题:

class AppKernel extends Kernel 
{
    ...
    public function getCacheDir() 
    {
        if ($this->environment === 'local') {
            return '/tmp/symfony/cache';
        }

        return parent::getCacheDir();
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的示例演示了如何为本地开发环境设置自定义缓存目录,同时保留生产的默认行为./ tmp/symfony/cache只是一个例子.我们可以在客户机的文件系统中的任何位置选择应用程序有权写入的位置.替换'local'为项目用于开发的环境的名称.