In diesem Artikel werden wir folgende Themen behandeln:
Am Ende dieses Artikels werden Sie gelernt haben, wie Sie Drupal-Module und -Themes mit Composer installieren und aktualisieren können.
Erstellung eines Composer-basierten Drupal-Projekts und Installation von Drupal-Modulen und -Themen.
Die neueste Version von Composer.
composer self-update
befehl zur Aktualisierung von Composer.
Der einfachste Weg, ein Drupal-Projekt mit Composer zu erstellen, ist die Verwendung von Vorlagen. Composer create-project
Dazu verwenden wir den Befehl composer create-project some/project
wenn Sie den Befehl some/project
Vorlage, um Ihr neues Projekt zu erstellen.
Ihr Projekt basiert auf dem Projekt "some/project
". Zum Beispiel dient die composer.json
-Datei in "some/project
" als Ausgangspunkt für Ihr Projekt. Danach hat das Projekt "some/project
" keinerlei Auswirkungen auf Ihr Projekt.
Auf der Drupal.org-Website finden Sie verschiedene beliebte Vorlagen zum Erstellen von Drupal-Projekten mit Composer.
NICHT: drupal/drupal
Das Projekt wurde eingestellt und wird nicht empfohlen.
In diesem Artikel verwenden wir das hoch empfohlene und weit verbreitete Projekttemplate "drupal-composer/drupal-project
". Dieses Template bietet ausreichende Konfiguration für die Entwicklung eines Drupal-Projekts mit Composer.
drupal-composer/drupal-project
Führen wir den folgenden Befehl aus, um ein Drupal-Projekt mit der Vorlage zu entwickeln:
$ composer create-project drupal-composer/drupal-project:8.x-dev my-project --stability dev --no-interaction $ cd my-project
Für weitere Informationen drupal-composer/drupal-project
die Dokumentation des Projekts.
Beginnen wir mit der Verwendung des Composers zur Verwaltung einer bestehenden Drupal-Anwendung
Es kann anfangs etwas schwierig sein, ein mit Composer nicht verwaltetes Drupal-Projekt mit Composer zu verwalten. Die genaue Methode, ein Drupal-Projekt mit Composer zu verwalten, hängt von der Verzeichnisstruktur der Drupal-Anwendung ab und erfordert zusätzliche Schritte.
Es gibt zahlreiche Tools, die den Prozess der Übersetzung eines Drupal-Projekts in eine Composer-Struktur automatisieren:
Composerize
Befehl der Drupal ConsoleWenn Sie mit den oben genannten Tools nicht weiterkommen, können Sie die folgenden Schritte durchführen.
.git
-Ordner. Es ist äußerst wichtig, dass Sie die Befehle aus dem richtigen Verzeichnis ausführen. Bei einigen Projekten kann der Ordner direkt das Drupal-Projekt enthalten. Bei anderen Projekten kann sich das Drupal-Projekt unter docroot/core
und web/core
befinden.composer.json
" und den Ordner "vendor
". Es sollte nur eine composer.json-Datei und ein vendor-Ordner in Ihrem Projekt vorhanden sein. Wenn es eine alte oder unbenutzte composer.json
oder einen Vendor-Ordner gibt, löschen Sie diese aus dem Projekt.$ cd drupal/projesinin/yeri $ find . -name "composer.json" -exec rm -rf {} \; $ find . -name "composer.lock" -exec rm -rf {} \; $ find . -name "vendor" -exec rm -rf {} \;
Erstellen Sie eine neue composer.json-Datei nach der folgenden Vorlage:
{ "name": "drupalprojem", "license": "proprietary", "type": "project", "repositories": { "drupal": { "type": "composer", "url": "https://packages.drupal.org/8" }, "asset-packagist": { "type": "composer", "url": "https://asset-packagist.org" } }, "require": { "composer/installers": "^1.2.0", "cweagans/composer-patches": "^1.6.4", "drupal/composerize": "1.x-dev", "drupal-composer/drupal-scaffold": "^2.4", "oomphinc/composer-installers-extender": "^1.1", "wikimedia/composer-merge-plugin": "^1.4.1" }, "require-dev": { "drupal/console": "^1.0.2", "drush/drush": "^9.0.0" }, "extra": { "enable-patching": true, "installer-types": ["bower-asset", "npm-asset"], "installer-paths": { "docroot/core": ["type:drupal-core"], "docroot/modules/contrib/{$name}": ["type:drupal-module"], "docroot/modules/custom/{$name}": ["type:drupal-custom-module"], "docroot/profiles/contrib/{$name}": ["type:drupal-profile"], "docroot/profiles/custom/{$name}": ["type:drupal-custom-profile"], "docroot/themes/contrib/{$name}": ["type:drupal-theme"], "docroot/themes/custom/{$name}": ["type:drupal-custom-theme"], "docroot/libraries/{$name}": ["type:drupal-library", "type:bower-asset", "type:npm-asset"], "drush/contrib/{$name}": ["type:drupal-drush"], "special/package/dir/": ["my/package"] }, "merge-plugin": { "include": [ "docroot/modules/custom/*/composer.json" ], "replace": false, "ignore-duplicates": true }, "patches": {} }, "minimum-stability": "dev", "prefer-stable": true }
Fügen Sie Drupal Core mit dem Befehl composer require drupal/core 8.6.0
zu Ihrem Projekt hinzu.
Nun haben Sie eine funktionale composer.json-Datei, die es Ihnen ermöglicht, Drupal Core und eine Drupal-Site ordnungsgemäß mit Composer zu verwalten, wobei verschiedene erforderliche Erweiterungen vorhanden sind.
Jetzt können Sie Module, Themen, Profile und ähnliches mit Composer installieren. Dies ist ein manueller Prozess, der Ihre Überprüfung erfordert.
Um weitere Module zum Projekt hinzuzufügen, verwenden Sie den Befehl "composer require drupal/[Modul-Name]
". Dadurch wird die neueste stabile Version des Moduls installiert oder, wenn es bereits installiert ist, auf die angegebene Version aktualisiert. Wenn Sie eine bestimmte Version angeben möchten, können Sie dies mit dem Befehl "composer require drupal/[Modul-Name] [Version]
" tun.
Führen Sie diesen Befehl für alle Contrib-Module von Drupal aus. Sie können ihn auch verwenden, um andere Module zu installieren. Verwenden Sie "drush", um alle mit "drush
" installierten Module aufzulisten. Beachten Sie, dass "drush" lokal installiert sein muss. "drush" führt Datenbankabfragen aus und listet die installierten Module in Drupal auf.
$ ./vendor/bin/drush pml --no-core --status=enabled ---------------- --------------------------------------- --------- ---------------- Package Name Status Version ---------------- --------------------------------------- --------- ---------------- Administration Admin Toolbar (admin_toolbar) Enabled 8.x-1.27 ---------------- --------------------------------------- --------- ----------------
Löschen wir die Contrib-Module aus der Versionskontrolle (git), wie es sich gehört.
Fügen Sie die folgenden Zeilen zu einer neuen oder bestehenden .gitignore
Datei hinzu:
docroot/core docroot/modules/contrib docroot/themes/contrib docroot/profiles/contrib docroot/libraries
Löschen Sie nach dem Hinzufügen die folgenden Dateien aus der Versionskontrolle:
git rm --cached docroot/core git rm --cached docroot/modules/contrib git rm --cached docroot/themes/contrib git rm --cached docroot/profiles/contrib git rm --cached docroot/libraries git rm --cached vendor
Wenn Sie den Fehler "fatal: pathspec 'vendor' did not match any files
" erhalten, liegt dies daran, dass die entsprechenden Dateien oder Ordner in Ihrem Verzeichnis nicht vorhanden sind. Dies ist normal.
Ja, das ist richtig. Sie haben das Drupal-Projekt erfolgreich in eine Composer-Struktur umgewandelt.
Um das Drupal-Paket zu installieren, führen Sie zunächst den folgenden Befehl unter Verwendung der obigen composer.json
-Vorlage aus. Die composer.json
-Datei sollte mindestens den Eintrag repositories und die Konfiguration der installer-paths enthalten.
$ composer require drupal/[proje]
Um das "pathauto
" Modul mit Composer zu installieren:
$ composer require drupal/pathauto
Standardmäßig wird damit die neueste Version installiert, um die spezifische Version zu installieren:
$ composer require drupal/pathauto 1.0.0
Dieser Befehl kann Fehler verursachen, wenn die Abhängigkeiten anderer Module nicht erfüllt sind. In diesem Fall können Sie versuchen, die Version anzupassen, bis die Abhängigkeiten erfüllt sind, oder Sie können die neueste Version installieren. Außerdem bedeutet "install
" auf Composer-Ebene das Herunterladen der Pakete, Aktualisieren der composer.lock
-Datei und Bereitstellen des Codes über den Autoloader, um ihn verwendbar zu machen. Dennoch müssen Sie das Drupal-Projekt entweder über die Benutzeroberfläche oder über Drush in die Drupal-Datenbank installieren.
Um ein beliebiges Modul zu aktualisieren:
composer update [vendor]/[package]
Zum Beispiel um drupal/pathauto
zu aktualisieren:
$ composer update drupal/pathauto
Dies aktualisiert nur das drupal/pathauto
-Modul, auch wenn es ein abhängiges Modul dieses Moduls ist.
So aktualisieren Sie das Modul mit seinen abhängigen Modulen:
$ composer update drupal/pathauto --with-all-dependencies
Zur Aktualisierung durch Angabe der Mindestversion:
$ composer require drupal/pathauto:^1.1.0 --update-with-all-dependencies
Um alle Module zu aktualisieren:
$ composer update
Wie bei jeder Aktualisierung eines Drupal-Projekts sollten Sie nach dem Herunterladen des neuen Moduls eine Datenbankaktualisierung durchführen. Wenn Sie Drupal Configuration Management verwenden, sollten Sie die Konfigurationen nach der Datenbankaktualisierung erneut exportieren.
Drupal Core kann mit Composer wie jedes andere Modul aktualisiert werden. Wie bei den obigen Schritten können Sie drupal/core
aktualisieren, indem Sie drupal/core anstelle des Modulnamens angeben und die Befehle ausführen. Es ist eine gute Idee, eine neue Mindestversion für drupal/core
zu setzen, damit nicht versehentlich ein Downgrade durchgeführt wird.
Wie bei jeder Aktualisierung eines Drupal-Projekts sollten Sie nach dem Herunterladen des neuen Moduls eine Aktualisierung der Datenbank durchführen.
Nehmen wir an, es gibt ein Modul, das wir nicht mit Composer installiert haben. Wie installieren wir die Abhängigkeiten, die in der composer.json-Datei dieses Moduls aufgeführt sind? Wenn Sie sich diese Frage stellen, sind Sie eigentlich auf dem falschen Weg. Sie müssen zunächst den Composer verwenden, um das gesamte Drupal-Projekt zu verwalten, und das Modul mit dem Composer installieren. Dann werden seine Abhängigkeiten automatisch für Sie installiert.
Wenn das Modul Ludwig unterstützt, können Sie alternativ zum Composer auch Ludwig verwenden, um die Abhängigkeiten des Moduls zu installieren.
GOSB Teknopark Hi-Tech Bina 3.Kat B3 Gebze - KOCAELİ