Bibliotheken von Drittanbietern mit Composer

Prev Next

Von Totara 13 bis 19 wurden viele Bibliotheken von Drittanbietern über das libraries/required Verzeichnis verteilt. Von Totara 20 wird dieses Verzeichnis nicht mehr automatisch einbezogen. Stattdessen müssen Bibliotheken von Drittanbietern vor der Installation/Aktualisierung der Website mit Composer installiert werden.

Totara lädt automatisch eine Kopie des Komponisten während der CLI-Installation oder des Upgrades herunter und führt die richtigen Befehle aus, um die fehlenden Bibliotheken von Drittanbietern zu beheben, die sich im vendor Verzeichnis befinden. Dies ist jedoch nicht für alle Szenarien ideal (z. B. wenn zum Zeitpunkt der Installation kein Zugriff auf das offene Internet besteht) und einige Websites möchten die Bibliotheken möglicherweise im Voraus herunterladen.

Hinweis: Das browserbasierte Installations-/Upgrade-Skript übernimmt nicht automatisch Bibliotheksinstallationen. Sie müssen diese manuell in der Befehlszeile im Voraus auflösen.

Totara Composer-Dateistruktur

Datei

Raumbeschreibung

Aktivieren

composer.json

Haupt-Composer-Datei, die von Totara & Partnern zur Installation von Plugins und Bibliotheken verwendet wird.

Ja – Neue Plugins und Bibliotheken können hier hinzugefügt werden

composer.lock

Haupt-Composer-Sperrdatei, die die expliziten Versionen der installierten Bibliotheken definiert.

Ja

server/composer.json

Totara Core definiert die Bibliotheken, von denen Totara abhängt.

Nein - nur während eines Release von Totara geändert.

server/composer.lock

Die expliziten Bibliotheken, die vom Totara-Kern verwendet werden.

Nein - nur während eines Release von Totara geändert.

test/phpunit/composer.json

Bibliotheken zur Durchführung von PHPUnit-Tests

Nicht empfohlen.

test/phpunit/composer.lock

Bibliotheken zur Durchführung von PHPUnit-Tests

Nicht empfohlen.

test/behat/composer.json

Bibliotheken zur Durchführung von Behat-Tests

Nicht empfohlen.

test/behat/composer.lock

Bibliotheken zur Durchführung von Behat-Tests

Nicht empfohlen.

Wenn Sie Ihre eigenen Bibliotheken oder Plugins in Totara installieren möchten, führen Sie den Composer Bedarfsbefehl aus dem Stammverzeichnis aus und stellen Sie sicher, dass nur die JSON- und Sperrdateien des Root-Composers aktualisiert werden.

Standardverhalten: Totara installiert die Bibliotheksdateien automatisch

Damit dieser Schritt funktioniert, muss der Nutzer, der das Installationsskript ausführt, Schreibzugriff sowohl auf die aktuellen als auch auf die Anbieterverzeichnisse haben. Wenn Totara keinen Schreibzugriff hat, wird ein Fehler im Voraus gedruckt. Wenn Sie diesen Schritt ausführen lassen, empfehlen wir dringend, Ihrem Nutzer vorübergehend den Schreibzugriff auf die Stamm- und Anbieterverzeichnisse zu erlauben und anschließend den Schreibzugriff zu entfernen.

Standardmäßig lädt Totara eine Kopie von herunter composer.phar und installiert sie im Stammverzeichnis.

Definieren Ihrer eigenen Composer-Instanz

Um zu verhindern, dass Totara automatisch eine Composer-Instanz herunterlädt, können Sie stattdessen eine selbst konfigurieren und Totara den Ort in der TOTARA_COMPOSERKonstante mitteilen.

// Inside your config.php
define('TOTARA_COMPOSER', '/path/to/composer');

Wenn diese Option definiert ist, überspringt Totara den Schritt, in dem der Composer direkt heruntergeladen wird, und geht direkt zur Bibliotheksinstallation über.

Optional: Manuelle Handhabung der Bibliotheksdateien

Sie möchten möglicherweise nicht, dass Totara den Composer herunterlädt oder den Installationsbefehl des Composers automatisch ausführt und sich lieber vorher selbst darum kümmert.

Wenn dies der Fall ist, stellen Sie sicher, dass Sie composer install --no-dev -o im Dirroot-Verzeichnis (nicht im Serververzeichnis) laufen, bevor Sie die Installations- oder Upgrade-Befehle von Totara ausführen.

Idealerweise sieht der Ablauf für Upgrades wie folgt aus:

  1. Führen Sie die bisher üblichen dokumentierten Schritte aus.

  2. Wartungsmodus aktivieren.

  3. Sehen Sie sich den neuen Code an.

  4. Führen Sie den composer install --no-dev -o Befehl manuell aus.

  5. Fahren Sie mit den regulären Upgrade-Schritten fort.

  6. Wenn es an der Zeit ist, den Installations- oder Upgradebefehl auszuführen, überreichen Sie das --no-composer Flag, um Totara anzuweisen, diesen Schritt zu überspringen.

Für eine Installation würden Sie stattdessen Folgendes tun:

  1. Sehen Sie sich den Code an.

  2. Führen Sie den composer install --no-dev -o Befehl manuell aus.

  3. Fahren Sie mit den regulären Installationsschritten fort, aber gehen Sie vorbei, --no-composer wenn es Zeit ist, die Installation auszuführen.

Totara-Installation/-Upgrade daran hindern, Komponistenbefehle auszuführen

Wählen Sie das Beste für Ihre Situation. Wenn Sie eine dieser Optionen verwenden, müssen Sie den Installationsbefehl des Komponisten wie oben definiert ausführen, bevor Sie eine Installation oder ein Upgrade durchführen. Andernfalls werden die Ergebnisse nicht definiert.

  1. Definieren Sie eine für PHP sichtbare Umgebungsvariable namens TOTARA_SKIP_COMPOSER

  2. Eine Konstante in Ihrer config.php Datei definieren define('TOTARA_SKIP_COMPOSER', true);

  3. Leiten Sie das --no-composer Flag an das Installations- oder Upgrade-Skript weiter.

Umgang mit Konflikten bei Upgrades

Wenn Sie Ihre eigenen Bibliotheken in das Stammverzeichnis installieren, werden die vendor Dateien composer.json, composer.lock und in Konflikt gesetzt. Die frühzeitige Handhabung ist entscheidend für ein sicheres Upgrade.

  1. Notieren Sie sich Ihre Anpassungen – welche Bibliotheken/Plugins haben Sie installiert?

  2. Alle Anpassungen rückgängig machen. Setzen Sie die composer.json Dateien composer.lock und auf das zurück, was Totara mit der neuen Version verteilt hat.

  3. Führen Sie den Standardbefehl zur Installation des Komponisten --no-dev -o aus.

  4. Führen Sie nun die composer require vendor/package Befehle erneut aus, um Ihre Plugins wieder hinzuzufügen.

Hinweis: Sie müssen überprüfen, ob Ihre Anpassungen die neuere Version von Totara unterstützen. Bei großen Releases können die Anforderungen an Kernbibliotheken und Server steigen und Bibliotheken oder Plugins von Drittanbietern müssen möglicherweise aktualisiert werden.

Totara wird installiert, wenn Sie keinen direkten Internetzugang haben

Manchmal führen Sie Totara auf einem Server aus, der nicht direkt mit dem erht verbunden ist. In diesem Fall (20.0.0 oder höher) müssen Sie die Bibliotheksdateien auf einem Server mit Internetzugang vorinstallieren, bevor Sie sie auf den Server übertragen.

  1. Laden Sie auf einem Server mit Internetzugang die Totara-Version (20.0.0 oder höher) herunter, die Sie installieren möchten

  2. Eine Kopie von Composer herunterladen

  3. Stellen Sie sicher, dass Sie die gleiche PHP-Version wie Ihr Totara-Server ausführen

  4. Den Installationsbefehl des Komponisten im Stammverzeichnis von Totara ausführen composer install --no-dev -o oder vielleicht php composer.phar install --no-dev -o

  5. Kopieren Sie das gesamte Projekt einschließlich des Anbieterverzeichnisses auf den neuen Server

  6. Stellen Sie beim Ausführen der Installation sicher, dass Sie das --no-composer Flag oder eine der anderen Optionen setzen, die im Abschnitt „Verhindern, dass Totara Komponistenbefehle installiert/aktualisiert“ beschrieben sind.

Join the Totara Community for more resources to help you get the most out of Totara. 


© Copyright 2026 Totara Learning Solutions. All rights reserved.