È accettabile modificare il file composer.json di Drupal?


8

Drupal aderisce alla migliore pratica di non modificare il nucleo .

Drupal 8 ha un file composer.json incorporato nel core, se devi aggiungere una libreria di terze parti, dovresti modificare composer.json o c'è un modo migliore per farlo?


Possiamo riaprire questa discussione dato che sono passati due anni dall'ultima discussione? Ho letto che in Drupal 8 RC1, ora è possibile gestire i moduli direttamente tramite composer requireil docroot di Drupal. Va bene e va bene, ma cosa succede se devo fare ciò composer require drupal/drupal-extensionche tira su Behat e successivamente modifica molte cose nella directory del fornitore di D8 core? Questa è una domanda particolarmente delicata nel Pantheon, dove apparentemente la radice repo deve essere la docroot Drupal.
kostajh,

Risposte:


5

È possibile consumare Drupal 8 nel proprio composer.jsonfile:

{
    "name": "davidbarratt/mydrupalproject",
    "require": {
        "drupal/drupal": "8.*"
        "composer/installers": "1.*"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "drupal/drupal",
                "type": "drupal-core",
                "version": "8.0.0-dev",
                "source": {
                    "url": "http://git.drupal.org/project/drupal.git",
                    "type": "git",
                    "reference": "8.x"
                }
            }
        }
    ],
    "minimum-stability": "dev"
}

C'è una richiesta pull per composer/installersconsentire l'installazione dei drupal-coretipi di progetto: http://github.com/composer/installers/pull/38

Mi piacerebbe il tuo contributo sulla richiesta pull sopra, così come questo nella coda che consente l'installazione di moduli / temi / profili.

Un'altra soluzione che attualmente funziona è il modulo Composer Manager , che facilita l' composer.jsonuso per i moduli. È attualmente disponibile per Drupal 7 e sarà disponibile per Drupal 8 una volta che le versioni alpha di Drupal 8 saranno vicine.

Grazie mille, Rob


Vuoi aggiornare la tua risposta. :) drupal.org/node/2404989
David Barratt

1

C'è anche il modulo Composer che è un wrapper Drush per Composer. Il tuo modulo può quindi fornire il proprio file compositore che Drush utilizzerà per scaricare dipendenze aggiuntive per il tuo modulo - o sito se usi almeno un modulo "personalizzato" per il tuo sito drupal.

Consiglio anche di guardare questo seminario su Drupal8 / Composer dal DrupalCon di Monaco 2012: http://munich2012.drupal.org/content/drupal-has-dependencies-lets-manage-them


Drush Composer è solo un involucro attorno a Composer. Se lo usi per modificare i requisiti basati su Composer di Drupal, modificherà il composer.jsonfile root di Drupal . Inoltre, il video di Monaco 2012 non è più disponibile.
paul-m,

0

Sì.

È accettabile usare Composer nel modo in cui dovrebbe essere usato. :-)

Modificare:

Questo pacchetto esiste per aiutarti a gestire il tuo progetto Drupal basato su Composer: https://github.com/drupal-composer/drupal-project


Hai una citazione?
David Barratt,

Ho questo: composer create-project drupal/drupal drupal_root ~8@dev --keep-vcs cd drupal_root composer require vendor/package ~1... decidi che non hai bisogno di quel pacchetto ... git checkout -- composer.json composer updateE vorrei tenerlo.
paul-m,

Ciò modifica ancora il file composer.json di root. Dovresti ancora unire le tue modifiche alle modifiche di Drupal. O peggio, se qualcuno non aggiorna il proprio file compositore come gli è stato detto, potresti riscontrare gravi errori o falle nella sicurezza. Come aggirare questo?
David Barratt,

Non Devi fare quelle cose. Al momento non ci sono brani per compositori automatici per Drupal 8, al di là di qualsiasi sceneggiatura che potresti realizzare.
paul-m,

Se devi unire le modifiche con Drupal, non è esattamente questo il motivo per cui non modifichi core?
David Barratt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.