私はPhpStormを使用してSymfonyプロジェクトに取り組んでいます。
File> Settings> Project…> Directories構成で、vendor/
ディレクトリをResource rootとして定義しましたプロジェクトのコードで検索を実行する際にベンダーを無視したいので、オートコンプリートとExcludedフォルダーとして注文します。
しかし、私の問題は、ベンダーがまだ検索結果に表示されることです。
現在の構成は次のとおりです。
回避しようとしているものは次のとおりです。vendor/
の結果が表示されます。
PHP設定:
Scope = Customを選択して検索を制限できますが、これを変更するのを忘れることがあります。さまざまなSymfony2/3プロジェクトで使用できる設定を探しています。
PhpStormがそれをリソースルートとして使用し、検索の実行時にそれを無視できるようにするには、どのようにvendor/
ディレクトリをマークする必要がありますか?
また、Symfony2プロジェクトのデフォルトのディレクトリ構造の正しい構成は何ですか? composer create-project symfony/framework-standard-edition symfony-2.8 "~2.8"
を使用してSymfony 2.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動作を変更するかどうかわかりません。
vendor
フォルダーはリソースルートではありません。リソースルートは、画像やスクリプトなどのリソースがWebサーバーから提供されるフォルダーです。
あなたの場合、リソースルートとしてマークする必要がある唯一のフォルダーはおそらくweb
フォルダーですが、皮肉なことに、リソースルートとして選択していないのはほとんど唯一のフォルダーです。 web
をリソースルートとしてマークすると、絶対URL /css/foo.css
および/images/foo.jpg
は、Webサーバーが提供する有効なリソースです。リソースルートから他のすべてのフォルダーを削除することをお勧めします。
vendor
フォルダーは、ファーストパーティのプロジェクトコードの一部ではないため、除外するのが正しいです。サードパーティのコードでコード補完を機能させるには、ベンダーライブラリを外部ライブラリとして追加する必要があります。これを行うには、オプションでLanguages&Frameworks> [〜#〜] php [〜#〜]に移動し、ベンダーフォルダーをインクルードパスとして指定します。
Quolonel Questionsの回答 からのアドバイスを使用した後、Symfony2の構成の概要を次に示します(この回答の最後にあるSymfony3を参照)。
自動補完を行うには、Include pathの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]
更新:依存関係をcomposer update
で更新した後、PhpStormは、これらのディレクトリがignoredであっても、vendor/
ディレクトリで検索を実行します。解決策は、最初のスクリーンショットのように、Include pathからすべてのvendor/*
ディレクトリを削除し、vendor/
ディレクトリのみを保持することです。
すべてのvendor/*
ディレクトリをignoredとしてマークできるかどうかをテストし、composer update
が使用されるたびにこれを繰り返さないようにする必要があります。
手動でvendor
を除外してからphp設定に再度含めるよりも簡単な別のオプションは、PhpStormにcomposer.json
およびcomposer.phar
composer この質問 のshowinとしての設定。