Magento2: inny rodzaj plików composer.json

9

W Magento2 widzę, że różni dostawcy stosują różne formaty composer.json podane poniżej, aby nazwać swoje moduły.
1. miejsce

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

2nd:

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

1. Jaka jest różnica między nimi a którą należy podążać?
2. registration.phpsłuży do rejestracji modułu, dlaczego composer.jsonjest potrzebny we wszystkich modułach?

amitshree
źródło

Odpowiedzi:

12

To jest odpowiednie rozwiązanie:

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

Funkcja mapy w Composer:

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

wymusza zainstalowanie rozszerzenia app/code. Było to używane w starszych wersjach beta Magento 2. Chociaż to zadziała, Magento nie ładuje już rozszerzeń. Jeśli nie korzystasz z funkcji mapowania, rozszerzenie zostanie zainstalowane w folderze dostawcy, tak jak powinno być.

registration.php definiuje typ: motyw lub rozszerzenie i rejestruje Twój motyw / rozszerzenie w Magento 2.

composer.jsonPlik jest dodawany więc rozszerzenie może być ładowany poprzez Composer. Obsługuje również automatyczne ładowanie rozszerzenia.

Borowy
źródło
2
Dokumentacja register.php.
Steve Johnson