working - symfony 4 plugin phpstorm




Come configurare "Directory" quando si utilizza un progetto Symfony in PhpStorm (3)

Uso PhpStorm per lavorare su un progetto Symfony.

Nella configurazione File> Impostazioni> Progetto ...> Directory , ho definito il vendor/ directory come una radice di risorse per avere il completamento automatico e come cartella Esclusa perché voglio ignorare i fornitori quando eseguo una ricerca nel codice del mio progetto.

Ma il mio problema è che i fornitori sono ancora mostrati nei risultati di ricerca.

Ecco la mia configurazione attuale:

Ecco cosa sto cercando di evitare: i risultati del vendor/ sono mostrati:

Ecco la configurazione di PHP:

Posso limitare la ricerca selezionando Ambito = Personalizzato ma a volte mi dimentico di cambiarlo. Sto cercando alcune impostazioni che posso usare nei miei diversi progetti Symfony2 / 3.

Come dovrei contrassegnare il vendor/ directory in modo da consentire a PhpStorm di usarlo come una risorsa radice e ignorarlo quando si esegue una ricerca?

E qual è la configurazione corretta per la struttura delle directory di default di un progetto Symfony2? Ecco le directory di default dopo l'installazione di Symfony 2.8 con il composer create-project symfony/framework-standard-edition symfony-2.8 "~2.8" :

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

Ecco come ho segnato le directory in questo momento:

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

Nota: ho installato il plugin Symfony per PhpStorm, non so se questo cambi il comportamento dell'IDE.


Dopo aver usato i consigli della risposta di Quolonel Questions , ecco un riassunto della mia configurazione per Symfony2 (vedi Symfony3 alla fine di questa risposta):

Per il completamento automatico, utilizzare la directory del vendor/ nel percorso Includi :

Per evitare risultati irrilevanti durante la ricerca nel progetto, le seguenti directory devono essere ignorate:

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

Ecco la mia configurazione completa:

.idea               [excluded]
app/
  ├ cache           [excluded]
  └ logs            [excluded]
src/                [source]
  └ AppBundle/
    └ */Tests/      [test source folders]
vendor/             [excluded]
web/                [resources root]

Le cartelle di origine di prova sono facoltative, se sono definite verranno visualizzate nella barra degli strumenti:

Con la configurazione di default per Symfony3 , le directory sono leggermente diverse:

.idea               [excluded]
src/                [source]
tests/              [test source folders]
var/
  ├ cache           [excluded]
  └ logs            [excluded]
vendor/             [excluded]
web/                [resources root]

Aggiornamento: dopo aver aggiornato le mie dipendenze con l' composer update , PhpStorm esegue ricerche nella directory del vendor/ , anche se queste directory vengono ignorate . La soluzione è rimuovere tutte le directory del vendor/* dal percorso Includi e mantenere solo il vendor/ directory, come nel primo screenshot.

Dovrò testare se contrassegnare tutte le directory vendor/* come ignorate possono funzionare ed evitare di ripetere questo dopo ogni volta che viene utilizzato l' composer update .


Io uso PhpStorm 10 come IDE principale per Symfony2. Non è necessario installare alcun plugin Symfony, perché PhpStorm supporta Symfony2 per impostazione predefinita.

  • Dovresti contrassegnare la tua directory public_html come una radice di risorse, o qualunque cosa tu abbia che sarà pubblica
  • Sorgenti: la tua app/ directory
  • Se non si desidera che i vendors/ in ricerca, questo è ciò che escludo anche, si preme sul fornitore e il pulsante "Escluso" in alto. Vuoi anche escludere, tmp/ e app/cache/ directory
  • Come già sai, puoi definire lo scope e cercare lì.

Quando si esclude la directory, questo aiuta anche le prestazioni poiché PhpStorm non sta indicizzando e sta guardando i file lì, qualcosa che non si vuole comunque.

Per quanto riguarda la struttura delle directory di Symfony2, è piuttosto flessibile, io uso il mio. Ecco la struttura delle directory di Symfony 2.8 dai documenti.

Le cartelle escluse per me sono:

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

Un'altra opzione che è più facile che escludere manualmente il vendor e quindi includerla di nuovo nelle impostazioni php, è dire a PhpStorm di composer.json e composer.phar nelle impostazioni del compositore come mostrato in questa domanda .