如何配置";目录“;在PhpStorm中使用Symfony项目时
我使用PhpStorm处理Symfony项目 在文件>设置>项目…>目录配置中,我将如何配置";目录“;在PhpStorm中使用Symfony项目时,php,phpstorm,symfony,Php,Phpstorm,Symfony,我使用PhpStorm处理Symfony项目 在文件>设置>项目…>目录配置中,我将供应商/目录定义为一个资源根目录,以便自动完成,并将其定义为一个排除的文件夹,因为在项目代码中执行搜索时,我想忽略供应商 但我的问题是,搜索结果中仍然会显示供应商 以下是我当前的配置: .idea [excluded] app/ ├ cache [excluded] └ logs [excluded] src/
供应商/
目录定义为一个资源根目录,以便自动完成,并将其定义为一个排除的文件夹,因为在项目代码中执行搜索时,我想忽略供应商
但我的问题是,搜索结果中仍然会显示供应商
以下是我当前的配置:
.idea [excluded]
app/
├ cache [excluded]
└ logs [excluded]
src/ [source]
└ AppBundle/
└ */Tests/ [test source folders]
vendor/ [excluded]
web/ [resources root]
以下是我试图避免的:来自vendor/
的结果如下所示:
以下是PHP配置:
.idea [excluded]
app/
├ cache [excluded]
└ logs [excluded]
src/ [source]
└ AppBundle/
└ */Tests/ [test source folders]
vendor/ [excluded]
web/ [resources root]
我可以通过选择Scope=Custom来限制搜索,但有时我会忘记更改它。我正在寻找一些可以在不同的Symfony2/3项目中使用的设置
我应该如何标记vendor/
目录,以允许PhpStorm将其用作资源根目录,并在执行搜索时忽略它
Symfony2项目的默认目录结构的正确配置是什么?以下是使用composer create project Symfony/framework标准版Symfony-2.8“~2.8”
安装Symfony 2.8后的默认目录:
下面是我现在如何标记目录的:
.idea [excluded]
app/
├ config
├ cache [excluded]
├ logs [excluded]
└ Resources
src/ [source]
└ AppBundle/
└ Tests/ [test source folders]
vendor/ [excluded]
web/
注意:我为PhpStorm安装了Symfony插件,我不知道这是否会改变IDE的行为。供应商的文件夹不是资源根目录。资源根目录是一个文件夹,web服务器将在其中提供图像和脚本等资源 在您的情况下,唯一应该标记为资源根目录的文件夹可能是
web
文件夹,但具有讽刺意味的是,它几乎是您唯一没有选择作为资源根目录的文件夹。将web
标记为资源根表示绝对URL/css/foo.css
和/images/foo.jpg
可以是web服务器提供的有效资源;您可能希望从资源根目录中删除所有其他文件夹
排除
供应商
文件夹是正确的,因为它不是第一方项目代码的一部分。为了使代码完成对第三方代码有效,必须将供应商文件夹添加为外部库。这可以通过导航到选项中的Languages&Frameworks>PHP并将供应商文件夹指定为包含路径来实现。我使用PhpStorm 10作为Symfony2的主IDE。您不需要安装任何Symfony插件,因为PhpStorm默认支持Symfony2
- 您应该将您的
目录标记为资源根目录,或者任何您拥有的将成为公共目录的目录public\u html
- 来源-您的
目录应用程序/
- 如果您不想在搜索中使用
,这也是我排除的内容,请按vendor并按顶部的“Excluded”按钮。您还希望排除、vendors/
和tmp/
目录app/cache/
- 正如您已经知道的,您可以在那里定义范围和搜索
app/doctrinMigrations
app/cache
app/logs/
tmp/
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]
测试源文件夹是可选的,如果已定义,则将显示在工具栏中:
对于,目录略有不同:
.idea [excluded]
src/ [source]
tests/ [test source folders]
var/
├ cache [excluded]
└ logs [excluded]
vendor/ [excluded]
web/ [resources root]
更新:使用
composer Update
更新我的依赖项后,PhpStorm在供应商/
目录中执行搜索,即使这些目录被忽略。解决方案是从Include path中删除所有vendor/*
目录,并仅保留vendor/
目录,如第一个屏幕截图所示
我必须测试将所有
vendor/*
目录标记为忽略是否可行,并避免在每次使用composer update
后重复此操作。另一个选项比手动排除vendor
然后在php设置中再次包含它更简单,是告诉PhpStorm有关中所示的composer设置中的composer.json
和composer.phar
。我在赏金消息中犯了一个错误,应该是不同的目录。单击[F4]
触发事件的上下文是什么?这对我没什么用。你能把我的问题中的树复制到你的答案上并加上相应的分数吗?它可能对其他用户有用。如果没有其他模式对话框显示,任何编辑器上下文都可以工作。但是,不同的用户可能有不同的键绑定,所以指定键盘快捷键可能没有多大用处,所以我将删除它。我不会把你的ascii图复制到我的答案中,因为我认为这不会带来任何清晰;文本足够清晰。为了获得最佳性能和配置,请使用Symfony插件,以下两者之间有什么区别:未将供应商文件夹排除在外
和将其排除在外,以及将其放在“语言与框架>PHP包含路径”中
。对单词研究有影响吗?在我的例子中,我有vendor/在排除的文件夹中,vendor/twig/twig在Languages>PHP>Include path中,但我仍然没有twig类的自动完成。到底出了什么问题?当它仍然自动