2016-02-26 30 views
37

私はPhfStormを使ってSymfonyプロジェクトを操作します。 ファイル]> [設定]> [プロジェクトでPhpStormでSymfonyプロジェクトを使用するときに "ディレクトリ"を設定する方法

は...>ディレクトリ構成は、私は自動補完を持つためにリソースルートとしてvendor/ディレクトリを定義し、除外フォルダように私はベンダーときを無視したいので、私のプロジェクトのコードで検索を実行します。

しかし、私の問題は、ベンダーがまだ検索結果に表示されていることです。ここで

は私の現在の設定です:ここでは

​​

は、私は避けるようにしようとしているものです:vendor/からの結果が示されています。ここでは

enter image description here

は、PHPの設定です:

enter image description here

Scope = Customを選択して検索を制限できますが、これを変更することを忘れることもあります。私は別のSymfony2/3プロジェクトで使用できるいくつかの設定を探しています。

vendor/ディレクトリをマークして、PhpStormがリソースルートとして使用し、検索を実行する際にそのディレクトリを無視できるようにするにはどうすればよいですか?

そして、Symfony2プロジェクトのデフォルトディレクトリ構造の正しい設定は何ですか?ここでsymfonyの2.8インストール後のデフォルトのディレクトリはcomposer create-project symfony/framework-standard-edition symfony-2.8 "~2.8"である:

.idea    [excluded] 
app/ 
    ├ config 
    ├ cache   [excluded] 
    ├ logs   [excluded] 
    └ Resources 
src/    [source] 
    └ AppBundle/ 
    └ Tests/  [test source folders] 
vendor/    [excluded] 
web/ 

注:

ここ
app/ 
    ├ config 
    ├ cache 
    ├ logs 
    └ Resources 
src/ 
    └ AppBundle/ 
vendor/ 
web/ 

が、私はこの時点でディレクトリをマークする方法である私が、私ドンPhpStormためのsymfonyのプラグインをインストールこれがIDEの動作を変更するかどうかはわかりません。

+0

私は賞金のメッセージで間違いを犯しました。異なる**ディレクトリ***であるべきです。 –

答えて

33

vendorフォルダは、リソースルートではありません。リソースルートは、イメージやスクリプトなどのリソースがWebサーバーから提供されるフォルダです。

あなたの場合、リソースルートとしてマークする必要がある唯一のフォルダはおそらくwebフォルダですが、皮肉なことに、あなたはリソースルートとして選択していない唯一のフォルダです。リソースルートとしてwebとマークすると、絶対URL /css/foo.cssおよび/images/foo.jpgは、Webサーバーによって処理される有効なリソースになる可能性があります。他のすべてのフォルダをリソースのルートから削除することをお勧めします。

vendorフォルダーは、自社のプロジェクトコードの一部ではないため除外するのが適切です。サードパーティのコードでコード補完を機能させるには、ベンダフォルダを外部ライブラリとして追加する必要があります。これは、オプションで言語&フレームワーク>PHPに移動し、ベンダーフォルダをインクルードパスとして指定することで実行できます。

+0

'[F4]'が何かをトリガーするコンテキストは何ですか?それは私のために何もしません。私の質問に答えたツリーをコピーして、関連する*マーク*を追加してください。他のユーザーにとっては便利かもしれません。 –

+0

別のモーダルダイアログが表示されない場合、エディタのコンテキストは機能します。しかし、異なるユーザーが異なるキーバインドを持つ可能性があるので、キーボードショートカットを指定するのはそれほど有用ではないため、削除します。私はあなたのアスキーダイアグラムを私の答えにコピーしていません。なぜなら、それが明快さをもたらすとは思わないからです。テキストは十分明確です。 –

+0

最高のパフォーマンスと設定を使用するにはsymfonyプラグイン、https://github.com/Haehnchen/idea-php-symfony2-plugin –

0

Symfony2のプライマリIDEとしてPhpStorm 10を使用します。 PhpStormはデフォルトでSymfony2をサポートしているため、Symfonyプラグインをインストールする必要はありません。

  • あなたは、リソースのルートとしてあなたpublic_htmlディレクトリをマークしなければならない、または何でもあなたはそれを持っていることは
  • ソースパブリックになるだろう - あなたはそれが何だ、検索でvendors/したくない場合は、あなたのapp/ディレクトリ
  • 私も除外します、ベンダーとトップの「除外」ボタンを押します。また、tmp/app/cache/というディレクトリを除外したい場合もあります。
  • すでにご存知のように、スコープを定義して検索することができます。

ディレクトリを除外すると、PhpStormがインデックスに登録してファイルを監視していないため、パフォーマンスが向上します。

Symfony2のディレクトリ構造については、かなり柔軟性があります。私は自分自身を使用しています。ここにはdocsのSymfony 2.8 directory構造があります。私にとって

除外フォルダは、次のとおりです。

  • app/DoctrineMigrations
  • app/cache
  • app/logs/
  • tmp/
20

Quolonel Questions's answerから使用アドバイスを持った後、ここに私の設定の概要についてはSymfony2(Symfonこの回答の最後にY3):

自動補完のために、パス含めるvendor/ディレクトリを使用します。プロジェクトで検索する際に無関係な結果を避けるために

enter image description here

を、次のディレクトリは無視されなければなりません:

.idea    [excluded] 
app/ 
    ├ cache   [excluded] 
    └ logs   [excluded] 
vendor/    [excluded] 

enter image description here

default configuration for Symfony3

enter image description here


.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は、これらのディレクトリはを無視している場合でも、vendor/ディレクトリで検索を実行します。解決策は、のインクルードパスからすべてのvendor/*ディレクトリを削除し、最初のスクリーンショットと同様にvendor/ディレクトリだけを保持することです。

私は仕事とcomposer updateが使用されている各時間の後にこれを繰り返すように回避することができます無視など、すべてのvendor/*のディレクトリをマークするかどうかをテストする必要があります。手動vendorを除いた後、PHPの設定で再びそれを含めたよりも簡単です

2

別のオプションは、this questionにshowinとして作曲の設定でcomposer.jsoncomposer.pharについてPhpStormを伝えることです。

+0

ここでも必要なようにすべてのベンダーパスがインクルードパスとして自動的に追加されますが、コンポーザープラグインはリモートインタープリターを使用するときに警告を出します。 –

関連する問題