使用PhpStorm在主机和远程计算机中索引文件

时间:2016-12-02 13:06:59

标签: symfony indexing vagrant phpstorm

我使用Vagrant处理Symfony项目。主机正在使用Windows。由于请求时间非常长,我决定在vm中安装供应商文件,并且整个" rest"该项目仍在同步文件夹(project root => /vagrant)内。

一切正常,现在请求时间不到100毫秒。但还有一个问题。我必须首先在我的Windows机器上安装vendor,然后再在vm中安装,否则PhpStorm无法正确索引文件(我知道,这是合乎逻辑的结果)。

所以我的问题是,如果可能的话,在Windows机器上托管项目,例如"C:\Users\SampleUser\Project\ProjectX"下的文件,vendor下安装"/home/vagrant/vendor"并让PhpStorm索引两个目录的文件?

否则我将不得不忍受这个并且代码完成无法工作。

Code completion and indexing not working at the moment

或者我必须在两台机器上安装库以改善请求时间并且或多或少地具有良好的"工作流程。

我希望,我能解释得足够好,我的实际问题是什么。

非常感谢你的时间。

1 个答案:

答案 0 :(得分:1)

有同样的问题。确实是一个无赖。

一种可能的解决方案是将vendor文件夹保留在VM上并手动将其复制到主机上。

优点:

  • PHPStorm能够索引文件

缺点:

  • 如果添加依赖项,则必须手动将vendor文件夹的某些部分复制到主机

对于那些面临同样问题的人,我可能会建议SFTP(工具 - >部署 - > PHPStorm中的配置) - 无需离开IDE窗口即可传输文件。唯一要做的就是获取VM盒密码,该密码位于
 %USERNAME%/.vagrant.d/boxes/your box/box version/virtualbox/Vagrantfile

第二个解决方案:如果您使用的是Virtualbox,则可以将vm.synced_foldertype: "virtualbox"一起使用(同步可以双向运行,主机< - >来宾),然后离开项目中的vendor文件夹(用于始终同步)。

优点:

  • vendor文件夹始终是最新的,无需手动操作

缺点:

  • 表现糟糕(自己测试)

如果你想使用非虚拟机rsync(type: "rsync"),你将无法从客人那里同步回来(有人,如果我错了请纠正我!),所以你离开了第一个解决方案。

如果我们可以直接从VM(使用某种rsync /符号链接魔法)将vendor文件夹包含到“语言和框架 - > PHP - >包含路径”列表中,那就太棒了,至少在使用VirtualBox的时候,但是很好......