it-swarm.com.de

Fügen Sie eine Bibliothek eines Drittanbieters in das benutzerdefinierte Modul ohne composer) ein

Ich habe keinen Befehlszeilenzugriff auf eine remote gehostete drupal Site), sodass ich Composer nicht ausführen kann. Für mein benutzerdefiniertes Modul ist das Paket ryanwinchester/hubspot-php erforderlich. Kann ich es manuell hinzufügen? Ich bin bereit, jede Problemumgehung durchzuführen, egal wie schmutzig oder verpönt die Technik ist. Ich kann composer lokal ausführen, damit ich bei Erstellen Sie mindestens einen Herstellerordner mit der enthaltenen Datei autoload.php.

Könnte ich die Datei autoload.php manuell in mein Modul aufnehmen? Kann ich das nur in jeder Klasse benötigen, die das Paket verwendet?

3
Matt

Es ist durchaus üblich, dass Produktionsstätten Composer nicht ausführen können. Selbst wenn der Befehlszeilenzugriff verfügbar ist, ist der Site-Code schreibgeschützt, sodass composer keine Änderungen vornehmen kann. Entweder müssen Entwickler composer lokal verwenden und alle Module und Herstellerdateien in die Produktionsumgebung hochladen, oder ein Build-System übernimmt diese Aufgabe.

Ihre Drupal Site enthält nur einen vendors Ordner und einen Autoloader, der von Drupal und allen Modulen verwendet wird. Module müssen den Autoloader nicht selbst enthalten.

Ich gehe davon aus, dass Sie composer nicht zum anfänglichen Einrichten der Site verwendet haben und nur die Zip-Datei Drupal heruntergeladen und Ihre Module hinzugefügt haben. Composer kann Abhängigkeiten von Modulen bei Verwendung der Zip-Datei nicht automatisch ermitteln, Sie können die Abhängigkeiten jedoch selbst hinzufügen. Fügen Sie aus dem Stammverzeichnis Ihrer Site (nicht dem Modul mit der Abhängigkeit) alle erforderlichen Pakete als Abhängigkeit zum Projekt hinzu:

composer require ryanwinchester/hubspot-php

Dadurch wird das Drittanbieterpaket als Abhängigkeit von Ihrer Site hinzugefügt, die Dateien im Herstellerverzeichnis installiert und für alle Module verfügbar gemacht.

Das Aktualisieren des Drupal -Kerns mit diesem Setup ist jedoch schwieriger. Sie müssen die Datei composer.json Durch die aktualisierte Version ersetzen, um sicherzustellen, dass Sie die richtigen Abhängigkeiten für Drupal Core erhalten, und dann alle zusätzlichen Abhängigkeiten erneut hinzufügen.


Sie können die Dokumentation zur Verwendung von Composer zum Verwalten einer gesamten Site lesen: https://www.drupal.org/docs/develop/using-composer/using-composer-to-manage- Drupal-Site-Abhängigkeiten

Wenn Sie drupal-composer/drupal-project anstelle der Drupal Core-Zip-Datei verwenden, können Sie Drupal Module mit Composer hinzufügen sowie automatisch auflösen und Schließen Sie alle Abhängigkeiten dieser Module ein.

2
gapple