Catégorie 04SKILLS

Composer Skill

Composer avancé — patches, private repos, optimisation

Installation
Skill Claude — Globalmkdir -p ~/.claude/skills/composer
Installer Composercurl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
SKL
À propos

Skill Claude pour la gestion avancée des dépendances PHP avec Composer dans un contexte Drupal. Couvre les patches (cweagans/composer-patches), les dépôts privés, le merge plugin, les constraints de version, l'optimisation de l'autoloader et les bonnes pratiques de sécurité.

Commandes
CommandeDescription
composer install --no-devInstallation prod (sans dépendances de dev)
composer update drupal/core --with-all-dependenciesMettre à jour Drupal core et ses dépendances
composer require drupal/MODULEAjouter un module Drupal contrib
composer outdated --directLister les dépendances directes obsolètes
composer auditVérifier les vulnérabilités de sécurité connues
composer show --treeArbre des dépendances transitives
composer validate --strictValider composer.json avant un commit
Exemples
Appliquer un patch depuis drupal.orgCODE
# 1. Télécharger le patch depuis l'issue drupal.org
curl -o patches/views-exposed-filter-fix.patch \
  "https://www.drupal.org/files/issues/2024-01-15/3412345-12.patch"

# 2. Ajouter dans composer.json via extra.patches
# "drupal/views": {
#   "Fix exposed filter bug — #3412345": "patches/views-exposed-filter-fix.patch"
# }

composer install  # applique le patch automatiquement
Configurer un dépôt Satis privéCODE
# Ajouter le dépôt dans composer.json
composer config repositories.satis composer https://satis.example.com

# Configurer l'authentification (dans auth.json, NON versionné)
composer config --global http-basic.satis.example.com deploy TOKEN_CI

# Vérifier la connexion
composer search --format=json mon-module-prive | head -5
Mise à jour sécurisée de Drupal coreCODE
# Vérifier les advisories d'abord
composer audit

# Mettre à jour core avec toutes ses dépendances
composer update drupal/core drupal/core-recommended \
  drupal/core-composer-scaffold --with-all-dependencies

# Vérifier et committer
drush updb -y && drush cr
git diff composer.lock | head -50