Magento2: verschiedene Arten von composer.json-Dateien

9

In Magento2 sehe ich, dass verschiedene Anbieter verschiedenen Composer.json-Formaten folgen, um ihre Module zu benennen.
1:

 "autoload": {
    "files": [ "registration.php" ],
    "psr-4": {
      "Amit\\SamplePage\\": ""
    }
  }

2. Platz:

   "extra": {
        "map": [
            [
                "*",
                "Amit/SamplePage"
            ]
        ]
    }

1. Was ist der Unterschied zwischen ihnen und dem, dem ich folgen sollte?
2. registration.phpwird verwendet, um ein Modul zu registrieren. Warum composer.jsonwird es dann in allen Modulen benötigt?

amitshree
quelle

Antworten:

12

Dies ist der richtige Weg:

"autoload": {
    "files": [ "registration.php" ],
    "psr-4": {
      "Amit\\SamplePage\\": ""
    }
  }

Die Kartenfunktion in Composer:

   "extra": {
        "map": [
            [
                "*",
                "Amit/SamplePage"
            ]
        ]
    }

erzwingt die Installation der Erweiterung app/code. Dies wurde in älteren Betaversionen von Magento 2 verwendet. Obwohl dies funktioniert, lädt Magento Erweiterungen nicht mehr. Wenn Sie die Kartenfunktion nicht verwenden, wird die Erweiterung wie vorgesehen im Herstellerordner installiert.

registration.php Definiert den Typ: Thema oder Erweiterung und registriert Ihr Thema / Ihre Erweiterung in Magento 2.

Die composer.jsonDatei wird hinzugefügt, damit die Erweiterung über Composer geladen werden kann. Es übernimmt auch das automatische Laden für Ihre Erweiterung.

Silvan
quelle
2
Registrierung.php Referenz.
Steve Johnson