Die moduleinfo.json

Jedes Modul, das mit dem MMLC funktionieren soll brauch eine moduleinfo.json Datei. In dieser Datei werden die wichtigsten Angaben und Einstellungen für den MMLC zum Modul konfiguriert. In diesem Abschnitt werden die Felder und dessen Funktionen in der moduleinfo.json beschrieben.

Der Aufbau #

Bei der moduleinfo.json handelt es sich um eine Datei im JSON Format. Die Datei hat Ähnlichkeit mit einer composer.json Datei.

name #

In diesem Feld steht der Name des Moduls, so wie er für den User im MMLC angezeigt werden soll.

Hier ein Beispiel:

"name": "My first Module"

archiveName #

Hierbei handelt es sich um den eindeutigen technischen Namen des Moduls. Der archiveName setzt sich aus dem vendorName und dem moduleName getrennt mit einem Slashzeichen zusammen.

Hier ein Beispiel:

"archiveName": "mycompany/my-first-module"

sourceDir #

Mit diesem Feld kann festgelegt werden, aus welchem Verzeichnis die Dateien aus dem Modul in den Shop kopiert werden sollen.

Hier ein Beispiel:

"sourceDir": "new_files"

version #

Die Version des Moduls in Semver Konvention. Alternativ (und empfohlen) kann hier der Wert auto eingetragen werden. Das hat zur Folge, dass die Version automatisch aus einem git Tag entnommen wird und nicht mehr explizit angegeben werden muss.

Hier ein Beispiel:

"version": "auto"

shortDescription #

Mit diesem Feld kann die Kurzbeschreibung festgelegt werden die im MMLC in der Übersichtsseite angezeigt wird.

description #

Mit diesem Feld kann die Beschreibung festgelegt werden, die im MMLC auf einer Moduldetailseite angezeigt wird.

installation #

Mit diesem Feld kann die Installationsanleitung für das Modul angegeben werden. Als Alternative hierzu bietet sich an die Anleitung in die Datei install.md zu schreiben.

developer #

Dokumentation in Arbeit ...

developerWebsite #

Dokumentation in Arbeit ...

website #

Dokumentation in Arbeit ...

category #

Mit dem Feld category kann festgelegt werden, in welcher Kategorie das Modul im MMLC angezeigt wird. Wird kein Wert für das Feld angegeben oder ein ungültiger Wert landet das Modul in der Kategorie Sonstige Module. Folgende gültige Werte stehen zur Auswahl:

  • import/export für Import/Export
  • language für Sprachpaket
  • persistance für Datenbank Module
  • productivity für Produktivität
  • promotion/marketing für Promotion & Marketing
  • productinfos für Zusatzinformationen & Produkt-Tabs
  • shipping für Versand Module
  • library für Programmcode Bibliotheken
  • nocategory für Sonstige Module

Hier ein Beispiel für ein Modul, das in der Kategorie Produktivität angezeigt werden soll:

"category": "productivity"

price #

Hier kann eingetragen werden, zu welchem Betrag das Modul verkauft wird. Der Betrag muss in englischer Schreibweise ohne Währungzeichen geschrieben werden. Wird hier kein Wert eingetragen, zeigt der MMLC "Preis auf Anfrage" an. Wird hier der Wert free eingetragen, handelt es sich um ein kostenloses Modul.

Hier ein Beispiel für ein Modul, das 29,90 € anzeigen soll:

"price": "29.00"

tags (ab Version 1.18.0) #

Dokumentation in Arbeit ...

require #

Hier kann eingetragen werden von welchen Modulen das Modul abhängt. Die abhängigen Module werden automatisch mitinstalliert, wenn das Modul installiert wird.

Hier ein Beispiel von einem Modul, das von den Modulen composer/autoload ab Version 1.1.0 und robinthehood/modified-std-module ab Version 0.1.0 abhängig ist.

"require": { "composer/autoload": "^1.1.0", "robinthehood/modified-std-module": "^0.1.0" }

modifiedCompatibility #

Dokumentation in Arbeit ...

Hier ein Beispiel:

"modifiedCompatibility": [ "2.0.3.0", "2.0.4.0", "2.0.4.1", "2.0.4.2" ]

autoload #

Dokumentation in Arbeit ...

Hier ein Beispiel:

"autoload": { "psr-4": { "MyNamespace\\": "/vendor-no-composer/mynamespace", "MyCompany\\": "/vendor-no-composer/mycompany" } }