Cuando trabajas con múltiples paquetes en PHP (como módulos propios), llega un punto donde necesitas debuggear directamente el código del paquete y no una copia dentro de vendor.
Si alguna vez terminaste debuggeando en vendor/ en lugar de tu proyecto real… esto es para ti.
🔥 El problema
Por defecto, Composer:
- Descarga paquetes desde GitHub
- Los copia en
vendor/ - Xdebug trabaja sobre esa copia
Resultado:
- Código duplicado
- Cambios no se reflejan
- Debug incómodo
🧠 La solución: usar type: path
{
"repositories": [
{
"type": "path",
"url": "../boilerplateproducts",
"options": {
"symlink": true
}
}
]
}
⚙️ ¿Qué hace esto?
- Usa tu carpeta local
- No descarga desde GitHub
- Crea un symlink en
vendor
🔍 Verificar que funciona
composer updateDebes ver:
Installing julio101290/boilerplateproducts: Symlinking from ../boilerplateproductsY luego:
ls -l vendor/julio101290/boilerplateproductsResultado esperado:
boilerplateproducts -> ../../../boilerplateproducts🚀 Beneficios
- Debug directo en tu código
- Cambios en tiempo real
- Sin duplicación
- Flujo más rápido
⚠️ Error común
No mezcles path y vcs:
{
"type": "path",
"url": "../boilerplateproducts"
},
{
"type": "vcs",
"url": "https://github.com/usuario/boilerplateproducts"
}
Composer puede ignorar el local y usar GitHub.
✅ Desarrollo correcto
rm -rf vendor composer.lock
composer update
🟢 Desarrollo vs Producción
Desarrollo
- path
- symlink
- debug directo
Producción
- vcs
- descarga desde GitHub
- entorno limpio
⚡ Scripts útiles
dev.sh
#!/bin/bash
rm -rf vendor composer.lock
COMPOSER=composer.local.json composer update
prod.sh
#!/bin/bash
rm -rf vendor composer.lock
composer update
🧠 Tip PRO
{
"repositories": [
{
"type": "path",
"url": "../boilerplateproducts",
"options": { "symlink": true }
}
],
"config": {
"preferred-install": "source"
}
}
Ejecutar:
COMPOSER=composer.local.json composer update💡 IDE
Puedes integrar esto con NetBeans usando scripts o herramientas externas.
✅ Conclusión
- No debuggees código en vendor
- Usa symlink
- Automatiza tu flujo
Resultado: desarrollo más rápido y limpio 🚀
Deja un comentario