php annotation plugin phpstorm
Cómo configurar "Directorios" cuando se usa un proyecto de Symfony en PhpStorm (4)
Uso PhpStorm para trabajar en un proyecto de Symfony.
En la configuración Archivo> Configuración> Proyecto ...> Directorios , definí el vendor/
directorio como una raíz de Recursos para completar automáticamente y como una carpeta Excluido porque quiero ignorar a los proveedores cuando realizo una búsqueda en el código de mi proyecto.
Pero mi problema es que los proveedores todavía se muestran en los resultados de búsqueda.
Aquí está mi configuración actual:
Esto es lo que trato de evitar: se muestran los resultados del vendor/
:
Aquí está la configuración de PHP:
Puedo restringir la búsqueda seleccionando Alcance = Personalizado pero a veces me olvido de cambiar esto. Estoy buscando algunas configuraciones que pueda usar en mis diferentes proyectos Symfony2 / 3.
¿Cómo debo marcar el vendor/
directorio para permitir que PhpStorm lo use como raíz de recursos e ignorarlo al realizar una búsqueda?
¿Y cuál es la configuración correcta para la estructura de directorios predeterminada de un proyecto Symfony2? Estos son los directorios predeterminados después de una instalación de Symfony 2.8 con el composer create-project symfony/framework-standard-edition symfony-2.8 "~2.8"
:
app/
├ config
├ cache
├ logs
└ Resources
src/
└ AppBundle/
vendor/
web/
Así es como marqué los directorios en este momento:
.idea [excluded]
app/
├ config
├ cache [excluded]
├ logs [excluded]
└ Resources
src/ [source]
└ AppBundle/
└ Tests/ [test source folders]
vendor/ [excluded]
web/
Nota: instalé el complemento de Symfony para PhpStorm, no sé si esto cambia el comportamiento de IDE.
Después de haber usado los consejos de la respuesta de Quolonel Questions , aquí hay un resumen de mi configuración para Symfony2 (vea Symfony3 al final de esta respuesta):
Para completar automáticamente, use el vendor/
directorio en la ruta Incluir :
Para evitar resultados irrelevantes al buscar en el proyecto, se deben ignorar los siguientes directorios:
.idea [excluded]
app/
├ cache [excluded]
└ logs [excluded]
vendor/ [excluded]
Aquí está mi configuración completa:
.idea [excluded]
app/
├ cache [excluded]
└ logs [excluded]
src/ [source]
└ AppBundle/
└ */Tests/ [test source folders]
vendor/ [excluded]
web/ [resources root]
Las carpetas de origen de prueba son opcionales; si están definidas, aparecerán en la barra de herramientas:
Con la configuración predeterminada para Symfony3 , los directorios son ligeramente diferentes:
.idea [excluded]
src/ [source]
tests/ [test source folders]
var/
├ cache [excluded]
└ logs [excluded]
vendor/ [excluded]
web/ [resources root]
Actualización: después de actualizar mis dependencias con la composer update
, PhpStorm realiza búsquedas en el directorio vendor/
, incluso si se ignoran estos directorios. La solución es eliminar todos los directorios vendor/*
de Include path y mantener únicamente el vendor/
directorio, como en la primera captura de pantalla.
Tendré que probar si puedo marcar todos los directorios vendor/*
como ignorados y evitar repetir esto después de cada vez que se utiliza la composer update
.
La carpeta del vendor
no es una raíz de recursos. Una raíz de recursos es una carpeta donde el servidor web servirá recursos tales como imágenes y scripts.
En su caso, la única carpeta que debe marcarse como raíz de recursos es probablemente la carpeta web
, pero, irónicamente, es casi la única que no ha seleccionado como raíz de recursos. Marcar web
como la raíz del recurso significa que las URL absolutas /css/foo.css
y /images/foo.jpg
podrían ser recursos válidos servidos por el servidor web; es probable que desee eliminar todas las demás carpetas de las raíces de los recursos.
Es correcto excluir la carpeta del vendor
porque no es parte de su código de proyecto propio. Para que la finalización del código funcione para el código de un tercero, debe agregar la carpeta del proveedor como una biblioteca externa. Esto se puede hacer navegando a Idiomas y marcos > PHP en las opciones y especificando la carpeta del proveedor como una ruta de inclusión.
Otra opción que es más fácil que excluir manualmente al vendor
y luego incluirlo de nuevo en la configuración de php, es decirle a PhpStorm sobre composer.json
y composer.phar
en la configuración del compositor como se muestra en esta pregunta .
Yo uso PhpStorm 10 como mi IDE principal para Symfony2. No necesita instalar ningún complemento de Symfony, ya que PhpStorm admite Symfony2 de manera predeterminada.
- Tu deberías marcar tu directorio
public_html
como Raíz de Recursos, o lo que sea que tengas que sea público - Fuentes: su
app/
directorio - Si no quiere
vendors/
en la búsqueda, eso es lo que excluyo también, presiona el proveedor y el botón "Excluido" en la parte superior. También quiere excluir,tmp/
yapp/cache/
directories - Como ya sabes, puedes definir el alcance y buscar allí.
Cuando excluye el directorio, también ayuda al rendimiento ya que PhpStorm no indexa ni mira archivos allí, algo que no quiere de todos modos.
En cuanto a la estructura de directorios de Symfony2, es bastante flexible, yo uso la mía. Aquí está la estructura de directorios de Symfony 2.8 de los documentos.
Las carpetas excluidas para mí son:
-
app/DoctrineMigrations
-
app/cache
-
app/logs/
-
tmp/