Externe bibliotheken met componist

Prev Next

Van Totara 13 tot 19 werden veel bibliotheken van derden gedistribueerd via de libraries/required map. Vanaf Totara 20 is deze map niet langer automatisch inbegrepen. In plaats daarvan moeten bibliotheken van derden worden geïnstalleerd vóór de installatie/upgrade van de site met composer.

Totara downloadt automatisch een kopie van de composer tijdens het CLI-installatie- of upgradeproces en voert de juiste commando's uit om de ontbrekende bibliotheken van derden op te lossen, die je in de vendor map kunt vinden. Dit is echter niet ideaal voor alle scenario's (bijvoorbeeld - als er op het moment van installatie geen toegang is tot het open internet) en sommige sites willen de bibliotheken misschien van tevoren downloaden.

Als deze optie niet wordt geactiveerd, blijft de oude 'blader'-opmaak behouden. Het browsergebaseerde installatie/upgradescript zal niet automatisch bibliotheekinstallaties verwerken. Je moet die van tevoren manueel oplossen op de command line.

Totara composer bestandsstructuur

Bestand

Beschrijving

Bewerkbaar

composer.json

Hoofdbestand dat door Totara en partners wordt gebruikt om plugins en bibliotheken te installeren.

Ja - Nieuwe plugins en bibliotheken kunnen hier toegevoegd worden

composer.lock

Hoofdbestand dat de expliciete versies van geïnstalleerde bibliotheken bepaalt.

Ja

server/composer.json

Totara Core bepaalt de bibliotheken waarvan Totara afhankelijk is.

Nee - alleen gewijzigd door Totara tijdens een release.

server/composer.lock

De expliciete bibliotheken die door Totara core gebruikt worden.

Nee - alleen gewijzigd door Totara tijdens een release.

test/phpunit/composer.json

Bibliotheken die gebruikt worden om PHPUnit-testen uit te voeren

Niet aanbevolen.

test/phpunit/composer.lock

Bibliotheken die gebruikt worden om PHPUnit-testen uit te voeren

Niet aanbevolen.

test/behat/composer.json

Bibliotheken die gebruikt worden om gedragstesten uit te voeren

Niet aanbevolen.

test/behat/composer.lock

Bibliotheken die gebruikt worden om gedragstesten uit te voeren

Niet aanbevolen.

Als je je eigen bibliotheken of plugins in Totara wil installeren, voer dan de composer vereist commando uit vanuit de root-map en zorg ervoor dat alleen de root composer JSON en lock-bestanden worden bijgewerkt.

Standaardgedrag: Totara installeert de bibliotheekbestanden automatisch

Om deze stap te laten werken, moet de gebruiker die het installatiescript uitvoert schrijfrechten hebben voor zowel de huidige als de leveranciersmappen. Als Totara geen schrijfrechten heeft, wordt er van tevoren een fout afgedrukt. Als je toestaat dat deze stap wordt uitgevoerd, raden we je ten zeerste aan om je gebruiker tijdelijk schrijftoegang te geven tot de root + vendor-mappen en vervolgens de schrijftoegang achteraf te verwijderen.

Standaard zal Totara een kopie downloaden composer.phar en installeren in de root-map.

Je eigen composer instantie definiëren

Om te voorkomen dat Totara automatisch een composer instantie download, kun je er zelf een configureren en Moodle vertellen waar deze zich bevindt. TOTARA_COMPOSER

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

Indien gedefinieerd, zal Totara de stap overslaan waar het de componist rechtstreeks downloadt en rechtstreeks naar de bibliotheekinstallatie gaan.

Optioneel: Handmatig omgaan met de bibliotheekbestanden

Je wilt misschien niet dat Totara de composer downloadt of de installatie-opdracht van de composer automatisch uitvoert, en je wilt er de voorkeur aan geven om dit van tevoren zelf te doen.

Als dat het geval is, zorg er dan voor dat je draait composer install --no-dev -o in de dirroot-map (niet de servermap) voordat je Totara's installatie- of upgradecommando's uitvoert.

Idealiter ziet de stroom er zo uit voor upgrades:

  1. Volg de normale, gedocumenteerde stappen tot nu toe.

  2. Schakel onderhoudsmodus in.

  3. Bekijk de nieuwe code.

  4. Voer de composer install --no-dev -o opdracht manueel uit.

  5. Ga verder met de reguliere upgradestappen.

  6. Wanneer het tijd is om de installatie- of upgradeopdracht uit te voeren, geef je de --no-composer vlag om Moodle te vertellen dat ze die stap moet overslaan.

Voor een installatie zou je in plaats daarvan het volgende doen:

  1. Bekijk de code.

  2. Voer de composer install --no-dev -o opdracht manueel uit.

  3. Ga verder met de gewone installatiestappen, maar geef door --no-composer wanneer het tijd is om de installatie uit te voeren.

Voorkom dat Moodle composer-commando's uitvoert bij het installeren/upgraden van Moodle

Een van deze zal doen, kies wat het beste is voor jouw situatie. Als je een van deze gebruikt, moet je de composer install command zoals hierboven gedefinieerd uitvoeren voor een installatie of upgrade, anders zullen de resultaten ongedefinieerd zijn.

  1. Definieer een omgevingsvariabele die zichtbaar is voor PHP, genaamd TOTARA_SKIP_COMPOSER

  2. Definieer een constante in je config.php bestand define('TOTARA_SKIP_COMPOSER', true);

  3. Geef de --no-composer vlag door naar het installatie- of upgradescript.

Omgaan met conflicten bij upgrades

Als je je eigen bibliotheken in de root-map installeert, dan zullen je vendor, composer.json en composer.lock bestanden conflicteren. Om een veilige upgrade te garanderen, is het van cruciaal belang om deze van tevoren af te handelen.

  1. Maak een notitie van je aanpassingen - welke bibliotheken/plugins heb je geïnstalleerd?

  2. Maak alle aanpassingen ongedaan. Zet de bestanden composer.json en composer.lockterug op wat Totara met de nieuwe versie heeft gedistribueerd.

  3. Start de standaard composer install --no-dev -o commando.

  4. Voer nu de composer require vendor/package commando's opnieuw uit om je plugins opnieuw toe te voegen.

Als deze optie niet wordt geactiveerd, blijft de oude 'blader'-opmaak behouden. Je moet controleren of je aanpassingen de nieuwe versie van Totara ondersteunen. Met grote releases kunnen de kernbibliotheken en serververeisten toenemen en moet je mogelijk bibliotheken of plugins van derden upgraden.

Totara installeren wanneer je geen rechtstreekse internetverbinding hebt

Soms kun je Totara laten lopen op een server die niet rechtstreeks verbonden is met de erht. In dit geval (20.0.0 of hoger) moet je de bibliotheekbestanden vooraf installeren op een server met internettoegang voordat je ze naar de server overbrengt.

  1. Download de Totara-versie (20.0.0 of hoger) die je wil installeren op een server met internettoegang

  2. Download een kopie van de componist van de componist

  3. Zorg ervoor dat je dezelfde PHP-versie gebruikt die je Totara-server zal gebruiken

  4. Start de composer install command in de root directory van Totara composer install --no-dev -o of misschien php composer.phar install --no-dev -o

  5. Kopieer het hele project inclusief de leveranciersmap naar de nieuwe server

  6. Wanneer je de installatie uitvoert, zorg er dan voor dat je de --no-composer vlag instelt of een van de andere opties die beschreven staan in de sectie "Voorkom dat Moodle installeert/upgrade van het uitvoeren van composer commando's".

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


© Copyright 2026 Totara Learning Solutions. All rights reserved.