Magento Composer: aggiornare moduli

Introduzione

Magento 2 si gestisce tramite Composer, il package manager standard di PHP. Tutti i moduli, le patch e le dipendenze vanno gestite tramite composer.json e composer.lock, evitando modifiche manuali al core.

File chiave

  1. composer.json: dichiara le dipendenze, versioni e repository.
  2. composer.lock: snapshot delle versioni installate, va sempre committato.
  3. auth.json: contiene credenziali per repo.magento.com e marketplace privati, mai committato in git.

Aggiungere un modulo

Esempio modulo da repository pubblico:

composer require vendor/modulo-magento:^1.0.0

Dopo l'installazione del pacchetto:

php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush

Aggiornare moduli

Per aggiornare un singolo modulo: composer update vendor/modulo-magento --with-dependencies. Per aggiornare tutto (rischioso in produzione): composer update. Sempre testare in staging.

Aggiornare Magento stesso

L'upgrade della versione Magento si fa cambiando il vincolo in composer.json (es. "magento/product-community-edition": "2.4.7") e poi:

composer update --with-all-dependencies

Seguire la procedura di Adobe per ogni minor release e leggere le release notes.

Patch composer

Magento distribuisce patch ufficiali tramite Quality Patch Tool: composer require magento/quality-patches. Il comando vendor/bin/magento-patches apply MDVA-XXXXX applica patch specifiche.

Ambienti dev vs prod

In produzione si usa composer install --no-dev --optimize-autoloader per evitare di scaricare dipendenze di sviluppo. In sviluppo si include --prefer-source se serve modificare i file vendor temporaneamente.

Repository privati

Per moduli a pagamento si aggiunge il repo in composer.json:

{ "repositories": [ { "type": "composer", "url": "https://repo.vendor.com" } ] }

Credenziali in auth.json sotto http-basic. Mai esporre auth.json su Git pubblico.

Hai bisogno di aiuto?

Se vuoi un Magento ottimizzato dal team di G Tech Group, scrivici tramite il modulo di contatto.

Hai trovato utile quest'articolo?