È 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.