Usar Composer por SSH: gestión de dependencias PHP
Usar Composer por SSH: gestión de dependencias PHP
Composer es el gestor de paquetes estándar para PHP. Hace que instalar bibliotecas y frameworks sea coser y cantar. En Theory7 ofrecemos Composer en todos nuestros planes de hosting con acceso SSH. En esta guía aprenderás a usar Composer de forma eficaz en tus proyectos PHP.
¿Qué es Composer?
Composer gestiona las dependencias de los proyectos PHP. En lugar de descargar y actualizar las bibliotecas manualmente, dejas que Composer lo haga de forma automática. Ventajas:
- Actualizaciones automáticas de las dependencias
- Resolución de dependencias - los conflictos se resuelven automáticamente
- Carga automática (autoloading) - las clases se cargan automáticamente
- Control de versiones - se fijan versiones exactas
Herramientas populares que usan Composer: Laravel, Symfony, plugins de WordPress, PHPUnit.
Comprobar si Composer está disponible
En los servidores de Theory7, Composer suele estar ya instalado. Compruébalo con:
composer --version
Si no se encuentra Composer:
which composer
O prueba la ruta completa:
/usr/local/bin/composer --version
Comandos básicos de Composer
Iniciar un proyecto nuevo
Para un proyecto nuevo con composer.json:
composer init
O instala directamente un framework:
composer create-project laravel/laravel mijnproject
Instalar dependencias
Si clonas un proyecto con un composer.json existente:
composer install
Esto instala todas las dependencias especificadas en composer.lock.
Añadir un paquete nuevo
composer require vendor/package
Ejemplo:
composer require monolog/monolog
composer require guzzlehttp/guzzle
Dependencias de desarrollo
Para paquetes que solo se necesitan durante el desarrollo:
composer require --dev phpunit/phpunit
Eliminar un paquete
composer remove vendor/package
Actualizarlo todo
composer update
O un paquete específico:
composer update vendor/package
Composer en producción
Instalación optimizada
Para servidores de producción:
composer install --no-dev --optimize-autoloader
Qué hacen estas opciones:
- --no-dev - Omite las dependencias de desarrollo
- --optimize-autoloader - Genera un mapa de clases optimizado
Optimización del autoloader
Después del despliegue:
composer dump-autoload --optimize
Esto acelera considerablemente la carga de las clases.
Estructura de composer.json
Un composer.json básico:
{
"name": "mijnbedrijf/mijnproject",
"description": "Mijn PHP project",
"require": {
"php": ">=8.1",
"monolog/monolog": "^3.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
Restricciones de versión
- ^3.0 - Compatible con 3.0 y superior, pero no con 4.0
- ~3.0 - Como mínimo 3.0, como máximo 3.x
- 3.0.* - Cualquier versión 3.0.x
- >=3.0 - 3.0 o superior
- 3.0.5 - Exactamente esta versión
Composer.lock
Composer.lock fija las versiones exactas. Así todo el mundo usa las mismas versiones.
Importante:
- Haz commit de composer.lock en el control de versiones
- Usa composer install (no update) en producción
- Usa composer update solo en local para actualizaciones deliberadas
Resolución de problemas
Errores de límite de memoria
COMPOSER_MEMORY_LIMIT=-1 composer install
O ajusta php.ini:
php -d memory_limit=-1 /usr/local/bin/composer install
Tiempo de espera agotado durante la instalación
composer config --global process-timeout 600
Problemas de caché
Vacía la caché de Composer:
composer clear-cache
Requisitos de plataforma
Si tu versión local de PHP es distinta de la de producción:
{
"config": {
"platform": {
"php": "8.1"
}
}
}
Composer en hosting compartido
En hosting compartido con recursos limitados:
- Instala las dependencias en local
- Sube la carpeta vendor/ al servidor
- O usa composer anulando el límite de memoria
Scripts de Composer
Automatiza tareas con scripts en composer.json:
{
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"test": "phpunit"
}
}
Ejecútalos con:
composer test
Paquetes privados
Para repositorios privados:
{
"repositories": [
{
"type": "vcs",
"url": "git@github.com:mijnbedrijf/privaat-package.git"
}
]
}
Asegúrate de que las claves SSH estén bien configuradas.
- Estrategia de copias de seguridad del servidor
- Configuración de PHP-FPM
¿Necesitas ayuda?
Estamos a tu disposición. ¿Te has encontrado con algún problema o tienes preguntas? Nuestro equipo de soporte te ayuda personalmente. Envíanos un mensaje a través del sistema de tickets: normalmente respondemos en unas horas y buscamos contigo la solución.
¿Buscas hosting WordPress? Consulta nuestra oferta.
A 0 de 0 personas les ha resultado útil