registration.php
desaparecido
Aparentemente a mi Vendorname_Modulename
mó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.php
para 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.php
archivo en su módulo, pero aún recibe este error, esto significa que registration.php
no 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.json
en vendor/magento/module-*
, verá una "autoload"
sección que hace referencia al registration.php
archivo. Entonces Composer cargará automáticamente su módulo, registration.php
lo 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/code
ovendor
) y para cualquier tipo de extensión (módulo, diccionario de traducción).fuente
Agregando a: Si
registration.php
NO faltaVerifique y confirme si el nombre del módulo en el módulo
etc/module.xml
es 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