Composer Drupal-projektis: miks see on vajalik
🎧 Kuula kõiki artikleid järjest
Kui Drupal-projektis kopeeritakse mooduleid käsitsi serverisse, ei ole uuendusprotsess enam hästi jälgitav. Composer lahendab selle probleemi.
Mis on Composer ja miks Drupal seda vajab
Composer on PHP sõltuvuste halduse tööriist. See vastab küsimustele: milliseid teeke projekt vajab, milliseid versioone, kuidas need omavahel sobivad.
Drupal 8-st alates on Composer standardne viis Drupali haldamiseks. Drupal.org soovitab kõigile uutele projektidele Composer-põhist paigaldust.
Vana viis: laadi drupal.org-ist zip-fail alla, paki lahti, kopeeri serverisse. Probleem: moodulitel on omavahelised sõltuvused, versioonikonfliktid tekivad käsitsi halvasti hallatavad, reprodutseerimine on raske.
Mida Composer annab
Korratav keskkond
composer.lock fail kirjutab üles täpsed versioonid kõigist sõltuvustest. Arendaja A arvutis, CI serveris ja toodangus on täpselt sama versioon, täpselt samade sõltuvustega.
# Klooni repo, paigalda täpselt samad sõltuvused
git clone projekt
composer installVersioonikonfliktide tuvastamine
Moodul A nõuab teeki X versioon 2.x, moodul B nõuab sama teeki versioon 3.x — need ei sobi kokku. Composer tuvastab selle konflikti ja ütleb miks, enne, kui midagi paigaldatakse.
Käsitsi haldamisel avasid selle konflikti alles siis, kui midagi katki läks.
Turvaauditid
composer auditSee käsk kontrollib kõiki sõltuvusi teadaolevate turvaprobleemide vastu. Ühe käsuga näed kas mõnel paigaldatud moodulil on turvanõrkus.
Uuendamine ilma üllatusteta
# Uuenda ainult Drupali core
composer update drupal/core --with-dependencies
# Uuenda kõik
composer update
# Kontrolli, mis muutub (enne uuendust)
composer update --dry-run--dry-run näitab, mis muutuks, ilma tegelikult uuendamata. Hea viis kontrollida enne uuendust.
Git-sõbralik
Composeriga Drupal-projektis on gitis ainult:
composer.json— sõltuvuste definitsiooncomposer.lock— täpsed versioonid- Kohandatud kood (
modules/custom/,themes/custom/) - Konfiguratsioon (
config/)
Vendor kaust (vendor/) ja contrib-moodulid (modules/contrib/) on gitignore-is — need genereerib composer install.
Tulemus: git ajalugu on puhas, PR-id on loetavad, erinevused on nähtavad.
Levinud probleemid ilma Composeri kasutamiseta
"Toodangus on erinev versioon, kui arenduses" — käsitsi kopeerimisel on see tavaline. Composer seda ei luba.
Moodul ei uuene, sest ei tea sõltuvustest — käsitsi uuendades kopeerid ainult mooduli, unustad teegi, mida see vajab.
"Ei tea, mis versioon paigaldatud on" — Composeri lockfailist on see kohe näha:
composer show drupal/coreUuendus läheb katki, sest versioonid ei sobi — Composer hoiatab enne, käsitsi meetod avastab seda hiljem.
Kokkuvõte
Composer ei ole arendaja mugavusvahend — see on professionaalse Drupal-projekti alus. Ilma Composerita muutub Drupal-projekti haldamine suuresti käsitööks, mis skaleerub halvasti ja tekitab üllatusi.
Kõik meie Drupal-projektid — hooldus, uuendamine, migratsioon — kasutavad Composerit. Kirjuta meile kui su Drupal-projekt pole Composer-põhine ja soovid liikuda parema töövoo peale.

Vajad Drupal abi?
Kui artikkel puudutab sinu olukorda, ei pea kõike lõpuni lugema. Sinuga suhtleb päris inimene ja aitab järgmise sammuni jõuda.