Drupal Composer workflow

Composer per Drupal

Dal rilascio di Drupal 8.8, Composer e' l'unico modo ufficialmente supportato per gestire Drupal: core, moduli contrib, librerie PHP. Il vecchio approccio "scarica zip dal sito" non e' più sicuro né manutenibile. Conoscere il workflow Composer e' fondamentale per ogni progetto Drupal moderno.

Creare un progetto

Si parte da drupal/recommended-project:

composer create-project drupal/recommended-project my_site
cd my_site

Questo crea la struttura standard con web/ come docroot e vendor/ separato.

Struttura

my_site/
  composer.json
  composer.lock
  vendor/
  web/
    core/
    modules/contrib/
    modules/custom/
    themes/contrib/
    themes/custom/
    profiles/
    sites/default/
  config/

Aggiungere moduli

composer require drupal/views_bulk_operations
composer require drupal/pathauto:^1.12
drush en views_bulk_operations pathauto

I moduli finiscono in web/modules/contrib/. composer.lock aggiornato va committato.

Rimuovere moduli

drush pm:uninstall views_bulk_operations
composer remove drupal/views_bulk_operations

Aggiornare core

composer update "drupal/core-*" --with-all-dependencies
drush updb -y
drush cr

L'aggiornamento di core gestisce le sub-dipendenze (Symfony, Twig, Doctrine).

Patches

Per applicare patch a moduli contrib in attesa di merge:

{
  "extra": {
    "patches": {
      "drupal/pathauto": {
        "Issue 1234: My fix": "https://www.drupal.org/files/issues/...patch"
      }
    }
  }
}

Richiede cweagans/composer-patches.

Scaffold

drupal/core-composer-scaffold mantiene aggiornati i file come .htaccess, index.php, robots.txt al rebuild. Si specificano in extra.drupal-scaffold file da escludere o sovrascrivere.

Dev dependencies

composer require --dev drupal/devel drupal/coder phpstan/phpstan

Tool di sviluppo non installati in produzione (con composer install --no-dev).

composer.lock

Il file composer.lock blocca le versioni esatte. Va committato sempre. In produzione si esegue composer install (non update) per garantire le stesse versioni del dev/staging.

Environment

Diversi ambienti possono avere config diverse via settings.php include conditionale, ma le dipendenze sono identiche. Mai modificare i file in vendor/ o web/core/: si perdono al prossimo composer install.

Hai bisogno di aiuto?

Se vuoi un sito Drupal performante dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?