Magento2: tipos diferentes de arquivos composer.json

9

No Magento2, vejo diferentes fornecedores seguirem diferentes formatos composer.json, dados abaixo, para nomear seus módulos.
1º:

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

2º:

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

1. Qual a diferença entre eles e qual deles devo seguir?
2. registration.phpé usado para registrar um módulo, por que composer.jsoné necessário em todos os módulos?

amitshree
fonte

Respostas:

12

Este é o caminho a seguir:

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

A função de mapa no Composer:

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

força a extensão a ser instalada app/code. Isso foi usado em versões beta mais antigas do Magento 2. Embora isso funcione, não é mais como o Magento carrega extensões. Se você não usar a função de mapa, a extensão será instalada na pasta do fornecedor, como deveria.

registration.php define o tipo: tema ou extensão e registra seu tema / extensão no Magento 2.

O composer.jsonarquivo é adicionado para que a extensão possa ser carregada via Composer. Ele também lida com o carregamento automático da sua extensão.

Silvan
fonte
2
registration.php referência.
Steve Johnson