registration.php desaparecido
Aparentemente a mi Vendorname_Modulenamemódulo le faltaba el registration.php. Estoy ejecutando la última versión de Magento2 de GitHub.
Cada módulo tiene que registrarse en el ComponentRegistrar. Un típico registration.phppara un módulo (en la raíz de su módulo) podría contener:
<?php
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Vendorname_Modulename',
__DIR__
);
También vea cualquier componente principal de Magento en app/code/Magento/su vendor/magento/directorio
registration.php NO falta
Además de esto, si TIENE un registration.phparchivo en su módulo, pero aún recibe este error, esto significa que registration.phpno se cargó y Magento2 no sabe acerca de su módulo.
Su módulo debe estar debajo app/code/(donde Magento2 buscará carpetas app/code/y encontrará el de su módulo registration.php), pero si ha creado su módulo como un paquete Composer, estará en el vendor/directorio de Composer y deberá engañar a Composer para que cargue su módulo registration.php(Magento no busca vendor/por sí mismo).
Si desea comprobar de cualquier módulo Magento2 composer.jsonen vendor/magento/module-*, verá una "autoload"sección que hace referencia al registration.phparchivo. Entonces Composer cargará automáticamente su módulo, registration.phplo que "le dirá" a Magento2 dónde está ubicado su módulo.
Este es un fragmento del módulo Magento Checkoutcomposer.json :
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"Magento\\Checkout\\": ""
}
}
Si tiene su módulo en un repositorio separado y cargado a través del compositor, entonces lo anterior es el camino a seguir. Si no lo tiene en un repositorio separado, entonces su módulo no pertenece vendor/sino dentro app/code/.
Puede usarlo para cualquier extensión sin cambiar nada.
Funciona para cualquier ubicación de extensión (
app/codeovendor) y para cualquier tipo de extensión (módulo, diccionario de traducción).fuente
Agregando a: Si
registration.phpNO faltaVerifique y confirme si el nombre del módulo en el módulo
etc/module.xmles correcto (no el nombre del módulo en la<sequence>etiqueta si está presente)fuente
Esto también puede ocurrir si los permisos no están configurados correctamente para el directorio y los archivos del módulo. Asegúrese de que magento y el usuario web puedan leer el directorio y los archivos.
fuente