Magento2: другой вид файлов composer.json

9

В Magento2 я вижу, что разные производители используют разные форматы composer.json, указанные ниже, чтобы назвать свои модули.
первый:

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

второй:

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

1. Какая разница между ними и какой я должен следовать?
2. registration.phpиспользуется для регистрации модуля, тогда зачем composer.jsonон нужен во всех модулях?

amitshree
источник

Ответы:

12

Это путь:

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

Функция карты в Composer:

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

заставляет расширение быть установленным в app/code. Это использовалось в более старой бета-версии Magento 2. Хотя это будет работать, Magento больше не загружает расширения. Если вы не используете функцию map, расширение будет установлено в папке vendor, как и должно быть.

registration.php определяет тип: тема или расширение и регистрирует вашу тему / расширение в Magento 2.

composer.jsonФайл добавляется так что расширение может быть загружено с помощью Composer. Он также обрабатывает автозагрузку для вашего расширения.

леший
источник
2
регистрация. ссылка
Стив Джонсон