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 :

  1. Installez les dépendances localement
  2. Téléchargez le dossier vendor/ sur le serveur
  3. 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

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.