Está bien, eres como yo. Tu máquina no tiene nada instalado localmente. ¡Ni siquiera composer ni PHP en CLI!
Aunque uses PHP y quizás incluso Symfony (o no), necesitas utilizar composer diariamente. Usas PhpStorm todos los días y piensas que es una lástima no aprovechar todas las opciones de tu IDE, especialmente todo lo relacionado con composer y la consola de Symfony. Entonces, ¿cómo configuras PhpStorm para especificar que el composer de tu proyecto se encuentra en la imagen de docker?
Aquí tienes un ejemplo de docker-compose.yml. De hecho, utilizarás el tuyo con tu php/composer dentro.
version: "3.8"
services:
apache_server:
image: 'devpartitech/php:7.4-apache'
ports:
- "80:80"
volumes:
- "./:/var/www/"
extra_hosts:
- host.docker.internal:host-gateway
Sepan que instalar composer en su imagen es extremadamente sencillo, solo necesitas copiar el composer de una imagen ya preparada 😊
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
Entonces, ¿cómo le decimos a PhpStorm que queremos usar /usr/local/bin/composer de nuestro contenedor?
Ve a Archivo > Configuración > PHP > Composer
![image-53 image-53](/uploads/media/default/0001/01/aad9689eb2898e85611871a4d2593beeaaa0f298.png)
En este punto aún no se ha hecho nada. Así que, marcarás Sincronizar la configuración del ide con composer.json y Intérprete Remoto.
![image-54 image-54](/uploads/media/default/0001/01/ae1e8ff9ab8bf06391e72666c31b960baea325d9.png)
En el botón “…” de Intérprete CLI, crearás una nueva configuración.
![image-55 image-55](/uploads/media/default/0001/01/b11335d3f0d87fb4f6acc0cf67e0b020d4669481.png)
Naturalmente, elige Desde Docker.
![image-56 image-56](/uploads/media/default/0001/01/9134f7cc88c579aa71c7dc74475164c089523aed.png)
Tendrás varias opciones disponibles. Podrías enlazar directamente a una imagen específica de docker. Personalmente, elijo mi docker-compose que me permite seleccionar el servicio que quiero usar. Mi docker-compose es extremadamente simple. Tiene solo un servicio y todo lo que necesito está ahí.
![image-57 image-57](/uploads/media/default/0001/01/eb9864e8e6bbaa7c41e7de82f81bb8142037198f.png)
Respecto a la configuración, personalmente elijo usar la conexión al servicio existente ya que uso docker-compose. Si hubiera utilizado un contenedor de docker directamente, habría usado la opción “siempre iniciar un nuevo contenedor”. No olvides pulsar el botón de actualización al final de General > Ejecutable PHP para confirmar que todo está presente.
![image-58 image-58](/uploads/media/default/0001/01/7ae44769f9889170733bbe32249a6125ee2cbff5.png)
Eventualmente, verás una pequeña pancarta en la parte superior cuando abras tu archivo composer.json
![image-59 image-59](/uploads/media/default/0001/01/48749a103f8b7266cb6bbad66303e763ace24a0e.png)
Tendrás acceso a las opciones directamente para instalar / actualizar, mostrar registro te permite ver qué está sucediendo realmente en tu contenedor. Después de tus comandos, tendrás acceso a opciones que te permiten lanzar más comandos.
![image-60 image-60](/uploads/media/default/0001/01/eeb14a594d9a2d2429f0a218d88b7ece5906ed6f.png)
También tienes la posibilidad de ejecutar tus scripts directamente desde la flecha verde a la izquierda de tu código.
![image-61 image-61](/uploads/media/default/0001/01/5e3c48d38896f01135d3b030d9c0f4a10218152e.png)
Ahora que hemos configurado nuestro primer paso, vamos a añadir composer y la consola de Symfony directamente al sistema “Ejecutar cualquier cosa” de PhpStorm; la famosa ventana que se abre cuando presionas CTRL dos veces.
Abre la ventana de configuración Archivo > Configuración, ve a la configuración de Herramientas > Soporte de Línea de Comandos y haz clic en el pequeño “+” para añadir una nueva configuración.
Debería aparecer una ventana de configuración. Haz clic en el pequeño “+” para crear una nueva configuración.
![image-66 image-66](/uploads/media/default/0001/01/09cf40f9a6e2870ebf6f04fc21aac51a0d3928ea.png)
Tendrás una pequeña ventana de configuración como esta con varias opciones, incluyendo composer y Symfony que ambos configuraremos.
![image-67 image-67](/uploads/media/default/0001/01/99d04317b87b523e6aa23f8604b36f6961f6bd1d.png)
Empecemos por configurar composer:
![image-68 image-68](/uploads/media/default/0001/01/ac4b35fe8bac48bb660b630039fc264cc8bf7c92.png)
Una vez registrado, deberías tener un pequeño mensaje indicando que se han encontrado varios comandos. Eso es más bien una buena señal 😺
![image-69 image-69](/uploads/media/default/0001/01/3478abea88079e4b27ca7475daff66f7bcd3310d.png)
Personalmente, cambié el alias para poner composer, por defecto PhpStorm pondrá “c”. Hacemos la manipulación de nuevo pero esta vez con Symfony.
![image-70 image-70](/uploads/media/default/0001/01/61c8e83fceffd5edac97ac435feca09c26001cb3.png)
Como siempre, elige tu intérprete. Elijo mi contenedor de mi docker-compose, y elijo la versión deseada de Symfony. Honestamente, si no has elegido 3.* 4.* hay un problema serio 😺 Ten en cuenta que si tienes problemas para actualizar tu aplicación Symfony a la última versión, sabemos cómo hacerlo y estaremos encantados de ayudarte ^^
![image-71 image-71](/uploads/media/default/0001/01/ed8222a437a9f01fb3cb43a6ef279b73e5f50f5a.png)
![image-72 image-72](/uploads/media/default/0001/01/fc23e568b0b5d9c9ec1a41080c1c65f7924ac1df.png)
Una vez más, cambio el alias. Prefiero poner “consola”. Cuestión de costumbre 😺
![image-73 image-73](/uploads/media/default/0001/01/e8a06b2c79b2c4b378a67fa08d26254a588e0d8d.png)
¡Eso es todo! Estamos listos para probar todo. Presiona CTRL dos veces. Se abrirá la ventana “Ejecutar cualquier cosa”.
Escribe consola y verás aparecer todos tus comandos de Symfony. Y como es mágico, se ejecutarán directamente en tu contenedor.
![image-74 image-74](/uploads/media/default/0001/01/246641d2ff89f5e6d9fec7756b263e7e0e3f41f4.png)