Utiliser Composer via SSH : gestion des dépendances PHP
Composer est le gestionnaire de packages standard pour PHP. Il facilite l'installation de bibliothèques et de frameworks. Chez Theory7, nous supportons Composer sur tous nos forfaits d'hébergement avec accès SSH. Dans ce guide, vous apprendrez à utiliser Composer efficacement pour vos projets PHP.
Qu'est-ce que Composer ?
Composer gère les dépendances pour les projets PHP. Au lieu de télécharger et de mettre à jour manuellement des bibliothèques, vous laissez Composer le faire automatiquement. Avantages :
- Mises à jour automatiques des dépendances
- Résolution des dépendances - les conflits sont résolus automatiquement
- Autoloading - les classes sont chargées automatiquement
- Gestion des versions - verrouillage des versions exactes
Outils populaires utilisant Composer : Laravel, Symfony, plugins WordPress, PHPUnit.
Vérifier la disponibilité de Composer
Sur les serveurs Theory7, Composer est généralement déjà installé. Vérifiez avec :
composer --version
Si Composer n'est pas trouvé :
which composer
Ou essayez le chemin complet :
/usr/local/bin/composer --version
Commandes de base de Composer
Démarrer un nouveau projet
Pour un nouveau projet avec composer.json :
composer init
Ou installez directement un framework :
composer create-project laravel/laravel monprojet
Installer des dépendances
Si vous clonez un projet avec un composer.json existant :
composer install
Cela installe toutes les dépendances spécifiées dans composer.lock.
Ajouter un nouveau package
composer require vendor/package
Exemple :
composer require monolog/monolog
composer require guzzlehttp/guzzle
Dépendances de développement
Pour les packages nécessaires uniquement pendant le développement :
composer require --dev phpunit/phpunit
Supprimer un package
composer remove vendor/package
Tout mettre à jour
composer update
Ou un package spécifique :
composer update vendor/package
Composer pour la production
Installation optimisée
Pour les serveurs de production :
composer install --no-dev --optimize-autoloader
Ce que ces flags font :
- --no-dev - Ignore les dépendances de développement
- --optimize-autoloader - Génère une carte de classe optimisée
Optimisation de l'autoloader
Après le déploiement :
composer dump-autoload --optimize
Cela accélère considérablement le chargement des classes.
Structure de composer.json
Un composer.json de base :
{
"name": "monentreprise/monprojet",
"description": "Mon projet PHP",
"require": {
"php": ">=8.1",
"monolog/monolog": "^3.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
Contraintes de version
- ^3.0 - Compatible avec 3.0 et supérieur, mais pas 4.0
- ~3.0 - Minimum 3.0, maximum 3.x
- 3.0.* - Chaque version 3.0.x
- >=3.0 - 3.0 ou supérieur
- 3.0.5 - Exactement cette version
Composer.lock
Composer.lock verrouille les versions exactes. Cela garantit que tout le monde utilise les mêmes versions.
Important :
- Commitez composer.lock dans le contrôle de version
- Utilisez composer install (pas update) en production
- composer update uniquement localement pour des mises à jour conscientes
Dépannage
Erreurs de limite de mémoire
COMPOSER_MEMORY_LIMIT=-1 composer install
Ou modifiez php.ini :
php -d memory_limit=-1 /usr/local/bin/composer install
Délai d'attente lors de l'installation
composer config --global process-timeout 600
Problèmes de cache
Effacez le cache de Composer :
composer clear-cache
Exigences de plateforme
Si votre version PHP locale diffère de la production :
{
"config": {
"platform": {
"php": "8.1"
}
}
}
Composer avec l'hébergement partagé
Sur l'hébergement partagé avec des ressources limitées :
- Installez les dépendances localement
- Téléchargez le dossier vendor/ sur le serveur
- Ou utilisez composer avec un dépassement de limite de mémoire
Scripts Composer
Automatisez les tâches avec des scripts dans composer.json :
{
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"test": "phpunit"
}
}
Exécutez avec :
composer test
Packages privés
Pour les dépôts privés :
{
"repositories": [
{
"type": "vcs",
"url": "git@github.com:monentreprise/package-prive.git"
}
]
}
Assurez-vous que les clés SSH sont correctement configurées.
Articles connexes
- Se connecter en SSH depuis Mac/Linux
- Configuration du pare-feu (UFW)
- Stratégie de sauvegarde du serveur
- Configuration de PHP-FPM
Besoin d'aide ?
Nous sommes là pour vous aider ! Vous rencontrez un problème ou avez des questions ? Notre équipe de support est heureuse de vous aider personnellement. Envoyez-nous un message via le système de tickets - nous répondons généralement dans quelques heures et sommes heureux de vous aider.
0 van 0 vonden dit nuttig