首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PhpStorm中使用Symfony项目时配置“目录”

如何在PhpStorm中使用Symfony项目时配置“目录”
EN

Stack Overflow用户
提问于 2016-02-26 14:30:20
回答 4查看 13.5K关注 0票数 53

我使用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之后的默认目录

代码语言:javascript
复制
app/
  ├ config
  ├ cache
  ├ logs
  └ Resources
src/
  └ AppBundle/
vendor/
web/

下面是我现在如何标记目录:

代码语言:javascript
复制
.idea               [excluded]
app/
  ├ config
  ├ cache           [excluded]
  ├ logs            [excluded]
  └ Resources
src/                [source]
  └ AppBundle/
    └ Tests/        [test source folders]
vendor/             [excluded]
web/

注意:我为PhpStorm安装了Symfony插件,我不知道这是否改变了IDE的行为。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-28 16:29:32

vendor文件夹不是资源根。资源根目录是一个文件夹,其中的资源(如图像和脚本)将由web服务器提供。

在您的示例中,唯一应该标记为资源根的文件夹可能是web文件夹,但具有讽刺意味的是,您几乎只有一个没有选择作为资源根。将web标记为资源根意味着绝对URL、/css/foo.css/images/foo.jpg可能是web服务器提供的有效资源;您可能希望从资源根中删除所有其他文件夹。

排除vendor文件夹是正确的,因为它不是您的第一方项目代码的一部分。要使代码完成对第三方代码有效,必须将供应商文件夹添加为外部库。这可以通过导航到选项中的语言&框架> PHP,并将供应商文件夹指定为包含路径。

票数 59
EN

Stack Overflow用户

发布于 2016-02-28 22:03:41

在使用了来自Quolonel问题的答案的建议之后,下面是我对Symfony2配置的总结(请参阅本答案末尾的Symfony3 ):

要自动完成,请使用包含路径中的vendor/目录。

为了避免在项目中搜索时出现不相关的结果,必须忽略以下目录:

代码语言:javascript
复制
.idea               [excluded]
app/
  ├ cache           [excluded]
  └ logs            [excluded]
vendor/             [excluded]

以下是我的完整配置:

代码语言:javascript
复制
.idea               [excluded]
app/
  ├ cache           [excluded]
  └ logs            [excluded]
src/                [source]
  └ AppBundle/
    └ */Tests/      [test source folders]
vendor/             [excluded]
web/                [resources root]

“测试源”文件夹是可选的,如果定义了它们,将出现在工具栏中:

对于Symfony3的默认配置,目录略有不同:

代码语言:javascript
复制
.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后重复此操作。

票数 26
EN

Stack Overflow用户

发布于 2016-07-14 01:31:59

另一个比手动排除vendor并将其再次包含在php设置中更容易的选择是,在composer设置中告诉PhpStorm关于composer.jsoncomposer.phar的信息,如在这个问题中显示。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35654320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档