registration.php ausência de
Aparentemente, meu Vendorname_Modulenamemódulo estava faltando o registration.php. Estou executando a versão mais recente do Magento2 no GitHub.
Todo módulo precisa se registrar no ComponentRegistrar. Um típico registration.phppara um módulo (na raiz do seu módulo) pode conter:
<?php
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Vendorname_Modulename',
__DIR__
);
Veja também qualquer componente principal do Magento app/code/Magento/ou seu vendor/magento/diretório
registration.php NÃO está faltando
Além disso, se você possui um registration.phparquivo no seu módulo, mas ainda está recebendo esse erro, isso significa que o seu registration.phpnão foi carregado e o Magento2 não conhece o seu módulo.
Seu módulo deve estar em app/code/(onde o Magento2 pesquisará pastas app/code/e encontrará o módulo registration.php), mas se você construiu o módulo como um pacote Composer, ele estará no vendor/diretório do Composer e será necessário induzir o Composer a carregar o módulo registration.php(Magento não pesquisa vendor/por si só).
Se você verificar qualquer módulo Magento2 composer.jsonem vendor/magento/module-*, você verá uma "autoload"seção que faz referência ao registration.phparquivo. Então o Composer carregará automaticamente o seu módulo, o registration.phpque "informará" o Magento2 onde seu módulo está localizado.
Este é um fragmento do módulo Magento Checkoutcomposer.json :
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"Magento\\Checkout\\": ""
}
}
Se você possui seu módulo em um repositório separado e carregado via compositor, o procedimento acima é o caminho a seguir. Se você não o tiver em um repositório separado, seu módulo não pertence, vendor/mas sim app/code/.