registration.php
ausência de
Aparentemente, meu Vendorname_Modulename
mó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.php
para 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.php
arquivo no seu módulo, mas ainda está recebendo esse erro, isso significa que o seu registration.php
nã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.json
em vendor/magento/module-*
, você verá uma "autoload"
seção que faz referência ao registration.php
arquivo. Então o Composer carregará automaticamente o seu módulo, o registration.php
que "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/
.
Você pode usá-lo para qualquer extensão sem alterar nada.
Ele funciona para qualquer local de extensão (
app/code
ouvendor
) e para qualquer tipo de extensão (módulo, dicionário de tradução).fonte
Adicionando a: Se
registration.php
NÃO estiver faltandoVerifique e confirme se o nome do módulo no módulo
etc/module.xml
está correto (não o nome do módulo na<sequence>
tag, se houver)fonte
Isso também pode ocorrer se as permissões não estiverem definidas corretamente para o diretório e os arquivos do módulo. Verifique se o diretório e os arquivos podem ser lidos pelo magento e pelo usuário da web.
fonte