Proyectos

Versiones de Node, bun y PHP

Fijar por proyecto la versión de Node, el gestor de paquetes y la versión de PHP, con Vite+ y los builds estáticos de PHP.

La pestaña Runtime (R) muestra lo que el servidor de desarrollo y tus terminales usan en la carpeta del proyecto, y permite fijarlo.

La pestaña Runtime: versiones de Node, del gestor de paquetes y de PHP del proyecto

Node y el gestor de paquetes

Joppa se apoya en Vite+, que descarga la versión de Node y el gestor de paquetes (bun, pnpm, npm, yarn) fijados por cada proyecto. No hay nada que instalar: Joppa instala Vite+ en el primer arranque, con Node LTS y bun, y luego lo actualiza cada día. Un Vite+ que ya tengas se aprovecha y se actualiza igual. Mientras se instala, la pestaña y la ventana Nuevo proyecto lo indican; si falla (sin conexión), Reintentar lo vuelve a lanzar.

  • Versión de Node: Mantener, Última LTS o una versión concreta.
  • Gestor de paquetes y su versión.
  • Fijar escribe .node-version y el campo packageManager de package.json: todas las terminales y el servidor de desarrollo usan entonces esas versiones (vp env pin).

Joppa lee las versiones en este orden: devEngines, luego un archivo de versión (.node-version, .nvmrc) y luego engines.

Node en tus terminales

Joppa instala Vite+ sin tocar tu perfil del shell. Para que tus terminales tengan node, bun, pnpm, npm y yarn en las versiones fijadas, Ajustes › Node › Usar el Node de Joppa en mis terminales añade este bloque, tras confirmar:

# >>> Joppa (Node) >>>
. "/Users/tu/.config/vite-plus/env"
# <<< Joppa (Node) <<<

El archivo depende de tu shell, como para PHP. Si tu perfil ya carga Vite+ (instalado con su propio comando), el interruptor aparece activado y Joppa no añade nada. Abre un terminal nuevo después del cambio.

PHP

Joppa descarga builds estáticos de PHP (static-php.dev), de la 8.1 a la 8.5, y los guarda en su carpeta.

  • Fijar una versión…: elige la versión; Instalar y usar la descarga si hace falta y escribe .php-version en la raíz del proyecto.
  • Quitar fijación elimina .php-version.

Extensiones

La lista Extensiones muestra lo que contiene el build fijado (php -m): bcmath, curl, gd, mbstring, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, redis, soap, zip… Están compiladas en el binario estático: no hay nada que instalar ni activar, y una extensión que no está en la lista (intl, opcache) no se puede añadir.

El php.ini del proyecto

php.ini del proyecto escribe los ajustes de PHP del proyecto en un archivo .php.ini en su raíz, un ajuste = valor por línea:

memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 64M

Los botones + memory_limit, + upload_max_filesize… añaden los ajustes más habituales. Guardar comprueba el archivo con PHP y luego reinicia los procesos PHP del proyecto que están en marcha. Un campo vacío elimina el archivo.

El comando php de Joppa lee el .php.ini más cercano (esta carpeta o una superior) y se lo pasa a PHP mediante la variable PHPRC: tus terminales, Composer, php artisan serve y los workers lo leen todos. Sin .php.ini, PHP mantiene sus valores por defecto (memory_limit = 128M…). El PHP del sistema no se ve afectado: conserva su propio php.ini. Haz commit del .php.ini para compartirlo con el equipo.

Xdebug

La pestaña Runtime de un proyecto PHP: extensiones, php.ini del proyecto y Xdebug

Los builds estáticos de static-php.dev no incluyen Xdebug. Joppa proporciona el suyo, compilado para cada versión de PHP (8.1 a 8.5) y descargado de download.getjoppa.com, con su suma de verificación comprobada, la primera vez que lo necesitas: Instalar Xdebug.

Ajuste Efecto
Xdebug para los procesos del proyecto Reinicia los procesos PHP del proyecto con XDEBUG_MODE y XDEBUG_CONFIG
Modo debug (paso a paso), coverage (cobertura de los tests), profile (archivos cachegrind en /tmp), uno o varios
Inicio Bajo demanda: solo con XDEBUG_TRIGGER (extensión Xdebug Helper del navegador, ?XDEBUG_TRIGGER=1, cookie); Siempre: cada petición y cada comando
Puerto del IDE 9003 por defecto, el de Xdebug 3

Xdebug solo se carga si XDEBUG_MODE está definido: desactivado, no ralentiza nada. Cada cambio reinicia los procesos PHP en marcha. Los worktrees del proyecto siguen sus ajustes.

En una terminal, el comando php de Joppa carga Xdebug de la misma forma:

XDEBUG_MODE=coverage php artisan test --coverage
XDEBUG_MODE=debug XDEBUG_TRIGGER=1 php artisan app:import

PhpStorm y VS Code

Todo se ejecuta en tu máquina, en la carpeta del proyecto: no hay path mappings que configurar.

  • PhpStorm: Settings › PHP › Debug, puerto 9003, y luego Start Listening for PHP Debug Connections (el icono del teléfono). En la primera conexión, acepta el servidor propuesto (tienda.test).
  • VS Code: la extensión PHP Debug (xdebug.php-debug), con este launch.json:
{
  "version": "0.2.0",
  "configurations": [{ "name": "Joppa", "type": "php", "request": "launch", "port": 9003 }]
}

PHP en tus terminales

Joppa pone en su carpeta bin un comando php y un comando composer que leen el .php-version de la carpeta actual (o de una carpeta superior). Para que tus terminales los usen, esta carpeta tiene que estar al principio del PATH.

Añadirlo por mí… (o Ajustes › PHP › Usar el PHP de Joppa en mis terminales) añade este bloque a tu perfil del shell, previa confirmación:

# >>> Joppa (PHP) >>>
export PATH="/Users/tu/Library/Application Support/joppa/bin":"$PATH"
# <<< Joppa (PHP) <<<
Shell Archivo modificado
zsh ~/.zshrc
bash ~/.bash_profile (macOS), ~/.bashrc (Linux)
fish ~/.config/fish/conf.d/joppa.fish (con fish_add_path --prepend)

El bloque se quita desde los mismos ajustes. Abre una terminal nueva después del cambio.

Fuera de los proyectos fijados

Ajustes › PHP › Fuera de los proyectos fijados elige el PHP que se usa en otros sitios: el del sistema o una versión de Joppa.

Composer

Los Ajustes indican qué Composer se usa (el de Joppa o el del sistema). Descargar Composer lo instala en Joppa, tras comprobar su suma de verificación.

getjoppa.com › support

Cargando

¿No funciona? Escribe a [email protected]. Una simple pregunta: [email protected].