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.