Wie installiere ich ein Paket über Composer?

8

Ich möchte meinem benutzerdefinierten Drupal 7-Modul eine Bibliothek hinzufügen. Bibliothek kann über Composer installiert werden, aber ich kann keine Lösung für die Installation finden? Wie kann ich diese Bibliothek installieren? Ich habe "Composer Manager" installiert, kann es aber immer noch nicht zum Laufen bringen.

gregab
quelle
Ich würde gerne auch die Antwort auf diese Frage wissen.
Itsdarrylnorris
1
Nicht einverstanden mit der engen Abstimmung darüber. Wie man Komponisten mit Drupal benutzt, ist definitiv ein Thema.
mpdonadio

Antworten:

6

Fügen Sie composer.jsonIhrem Modul zunächst eine Datei hinzu. Das einzige, was Sie hier benötigen, ist der requireAbschnitt, der Ihre externe Bibliothek enthält.

Composer managerDies ist eine Möglichkeit, alle Ihre Abhängigkeiten miteinander zu kombinieren. Es gibt jedoch auch andere Optionen, mit denen Drupal Ihre autoload.php-Datei laden kann. Die Technik, die ich bevorzuge, besteht darin, eine composer.jsonDatei auf Projektebene in Ihrem Drupal-Stammverzeichnis zu erstellen und das Modul composer_vendor zu verwenden, um Ihre Datei autoload.php einzuschließen.

Der einfachste Weg, um loszulegen, ist die Verwendung der Erweiterung composer_generate Drush, um Ihre composer.jsonDatei auf Projektebene zu erstellen.

$ drush dl composer_generate $ cd /path/to/drupalroot $ drush composer-generate > composer.json $ composer install

Composer-generate fügt alle derzeit auf Ihrer Drupal-Site verwendeten Projekte sowie composer_vendor hinzu und composer installsollte daher nur für Sie funktionieren. Die Hauptmagie liegt hier in den benutzerdefinierten Autoloadern, die der Vorlage hinzugefügt wurden. Schauen Sie sich die Ausgabe an, um zu sehen, was enthalten war.

Hier ist natürlich Vorsicht geboten. Mit der Standardvorlage werden alle Ihre Module in sites / all / modules / contrib abgelegt. Sie können die Vorlage vor dem Ausführen der Composer-Installation bearbeiten, wenn dies nicht gewünscht ist.

Sie müssen auch vorsichtig sein, wenn Sie modifizierte Module haben. Es gibt eine Reihe von Möglichkeiten, mit gehackten Inhalten umzugehen, aber das geht etwas über den Rahmen dieser einen Frage hinaus.

Aktualisieren

Wenn Sie Drush nicht ausführen möchten, können Sie auch Ihre eigene Datei composer.json mithilfe des Projekts https://github.com/drupal-composer/drupal-project manuell eingeben . Dies ist die Vorlage, auf der Composer-Generate basiert.

greg_1_anderson
quelle
Wir verwenden kein Drush. Es geht um diese
Bibliothek
Sie können Drush installieren und nur zum Herunterladen und Ausführen des Tools composer_generate verwenden. Dies wäre schneller als die manuelle Eingabe Ihrer eigenen Datei composer.json.
Greg_1_anderson
@ greg_1_anderson fügt der Hauptfrage hinzu, wie können wir die Datei autoload.php für die API eines Drittanbieters laden?
Sukhjinder Singh
Drupal 8 lädt den Autoloader für Sie, also fragen Sie vermutlich nach Drupal 7. Verwenden Sie entweder das oben empfohlene Modul composer_vendor oder fügen Sie das Include einfach zu Ihrer Datei settings.php hinzu.
Greg_1_anderson