Sie befinden sich hier: start » json

JSON

JSON

Nein, hier geht es nicht um eine Geschichte aus Georgien, genauer der Kolchis. Dies ist nicht Jason und die Argonauten.
JSON ist eine standardisiertes Format zum Austausch von Daten und zur Konfiguration von Systemen.

Provider Extension composer.json

Dieses Beispiel dient als Basis für eine Provider Extension

{
  "name": "ibk/ibkprovider",
  "type": "typo3-cms-extension",
  "description": "",
  "authors": [
    {
      "name": "Thomas Berscheid",
      "role": "Developer"
    }
  ],
  "require": {
    "typo3/cms-core": "^8.7.1"
  },
  "autoload": {
    "psr-4": {
      "Ibk\\Ibkprovider\\": "Classes"
    }
  }
}

TYPO3 Composer Installation

Wenn man TYPO3 über den Composer installiert (bevorzugte Methode) kann man dies per CLI erledigen. Übersichtlicher ist es aber, die gesamte Installation in eine composer.json im Stammverzeichnis der Webseite zu schreiben bzw. diese zu bearbeiten. Eine Installationsanweisung für den Composer für die Version 12 von TYPO3 kann wie folgt aussehen:

{
  "name": "typo3/cms-base-distribution",
  "description" : "TYPO3 CMS Base Distribution",
  "license": "GPL-2.0-or-later",
  "type": "project",
  "config": {
    "allow-plugins": {
      "typo3/class-alias-loader": true,
      "typo3/cms-composer-installers": true
    },
    "platform": {
      "php": "8.2.1"
    },
    "sort-packages": true
  },
  "require": {
    "typo3/cms-backend": "^12.4.0",
    "typo3/cms-belog": "^12.4.0",
    "typo3/cms-beuser": "^12.4.0",
    "typo3/cms-core": "^12.4.0",
    "typo3/cms-dashboard": "^12.4.0",
    "typo3/cms-extbase": "^12.4.0",
    "typo3/cms-extensionmanager": "^12.4.0",
    "typo3/cms-felogin": "^12.4.0",
    "typo3/cms-filelist": "^12.4.0",
    "typo3/cms-fluid": "^12.4.0",
    "typo3/cms-fluid-styled-content": "^12.4.0",
    "typo3/cms-form": "^12.4.0",
    "typo3/cms-frontend": "^12.4.0",
    "typo3/cms-impexp": "^12.4.0",
    "typo3/cms-info": "^12.4.0",
    "typo3/cms-install": "^12.4.0",
    "typo3/cms-reactions": "^12.4.0",
    "typo3/cms-rte-ckeditor": "^12.4.0",
    "typo3/cms-seo": "^12.4.0",
    "typo3/cms-setup": "^12.4.0",
    "typo3/cms-sys-note": "^12.4.0",
    "typo3/cms-t3editor": "^12.4.0",
    "typo3/cms-tstemplate": "^12.4.0",
    "typo3/cms-viewpage": "^12.4.0",
    "typo3/cms-webhooks": "^12.4.0",
    "fremd/fremde-extension": "dev-main",
    "ibk/ibkgeorgienseite": "dev-main",
    "ibk/ibkmaps": "dev-main"
  },
  "repositories": [
  {
    "type": "path",
    "url": "./packages/*/"
    }
  ]
}

Man beachte dabei die folgenden Zeilen:

"ibk/ibkgeorgienseite": "dev-main"

Hiermit teilen wir unserem System mit, dass wir unsere eigene Provider Extension installieren möchten. Über das Attribut „dev-main“ teilen wir Composer mit, dass wir die Version zum Entwickeln laden möchten und nicht, wie für den TYPO3 Core, die Version aus einem Repository.

"type": "path",
"url": "./packages/*/"

Hiermit teilen wir unserem System mit, wo sich die Verzeichnisse mit den Extensions zur Entwicklung (dev-main) befinden. Den Namen können wir eigentlich frei wählen, es hat sich jedoch bewährt, den allgemein üblichen Namen „packages“ für das Verzeichnis zu verwenden. Composer zieht sich dann den TYPO3 Core aus dem Netz und die Extensions für die Arbeit aus dem lokalen Verzeichnis.