我使用PhpStorm来处理Symfony项目。
在文件>设置>项目…中>目录配置,我将vendor/目录定义为一个资源根,以便自动完成,并将其定义为一个排除的文件夹,因为在我的项目代码中执行搜索时,我想忽略供应商。
但我的问题是,供应商仍然显示在搜索结果。
以下是我的当前配置:

下面是我试图避免的内容:vendor/的结果显示了:

以下是PHP配置:

我可以通过选择Scope = Custom来限制搜索,但有时我忘了更改它。我正在寻找一些设置,我可以使用在我的不同的Symfony2 2/3项目。
我应该如何标记vendor/目录,以便允许PhpStorm使用它作为资源根,并在执行搜索时忽略它?
Symfony2项目的默认目录结构的正确配置是什么?下面是使用composer create-project symfony/framework-standard-edition symfony-2.8 "~2.8"安装Symfony2.8之后的默认目录
app/
├ config
├ cache
├ logs
└ Resources
src/
└ AppBundle/
vendor/
web/下面是我现在如何标记目录:
.idea [excluded]
app/
├ config
├ cache [excluded]
├ logs [excluded]
└ Resources
src/ [source]
└ AppBundle/
└ Tests/ [test source folders]
vendor/ [excluded]
web/注意:我为PhpStorm安装了Symfony插件,我不知道这是否改变了IDE的行为。
发布于 2016-02-28 16:29:32
vendor文件夹不是资源根。资源根目录是一个文件夹,其中的资源(如图像和脚本)将由web服务器提供。
在您的示例中,唯一应该标记为资源根的文件夹可能是web文件夹,但具有讽刺意味的是,您几乎只有一个没有选择作为资源根。将web标记为资源根意味着绝对URL、/css/foo.css和/images/foo.jpg可能是web服务器提供的有效资源;您可能希望从资源根中删除所有其他文件夹。
排除vendor文件夹是正确的,因为它不是您的第一方项目代码的一部分。要使代码完成对第三方代码有效,必须将供应商文件夹添加为外部库。这可以通过导航到选项中的语言&框架> PHP,并将供应商文件夹指定为包含路径。
发布于 2016-02-28 22:03:41
在使用了来自Quolonel问题的答案的建议之后,下面是我对Symfony2配置的总结(请参阅本答案末尾的Symfony3 ):
要自动完成,请使用包含路径中的vendor/目录。

为了避免在项目中搜索时出现不相关的结果,必须忽略以下目录:
.idea [excluded]
app/
├ cache [excluded]
└ logs [excluded]
vendor/ [excluded]

以下是我的完整配置:
.idea [excluded]
app/
├ cache [excluded]
└ logs [excluded]
src/ [source]
└ AppBundle/
└ */Tests/ [test source folders]
vendor/ [excluded]
web/ [resources root]“测试源”文件夹是可选的,如果定义了它们,将出现在工具栏中:

对于Symfony3的默认配置,目录略有不同:
.idea [excluded]
src/ [source]
tests/ [test source folders]
var/
├ cache [excluded]
└ logs [excluded]
vendor/ [excluded]
web/ [resources root]Update:使用composer update更新我的依赖项之后,PhpStorm在vendor/目录中执行搜索,即使这些目录被忽略。解决方案是从包含路径中删除所有vendor/*目录,只保留vendor/目录,如第一个屏幕截图所示。
我必须测试标记所有被忽略的vendor/*目录是否有效,并避免在每次使用composer update后重复此操作。
发布于 2016-07-14 01:31:59
另一个比手动排除vendor并将其再次包含在php设置中更容易的选择是,在composer设置中告诉PhpStorm关于composer.json和composer.phar的信息,如在这个问题中显示。
https://stackoverflow.com/questions/35654320
复制相似问题