registration.php
mancante
Apparentemente il mio Vendorname_Modulename
modulo mancava il registration.php
. Sto eseguendo l'ultima versione di Magento2 da GitHub.
Ogni modulo deve registrarsi in ComponentRegistrar
. Un tipico registration.php
per un modulo (nella radice del modulo) potrebbe contenere:
<?php
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Vendorname_Modulename',
__DIR__
);
Vedi anche qualsiasi componente principale di Magento nella app/code/Magento/
tua vendor/magento/
directory
registration.php
NON mancante
Inoltre, se hai un registration.php
file nel tuo modulo, ma stai ancora registration.php
riscontrando questo errore, questo significa che il tuo non è stato caricato e Magento2 non è a conoscenza del tuo modulo.
Il tuo modulo dovrebbe essere sotto app/code/
(dove Magento2 cercherà le cartelle app/code/
e troverà il tuo modulo registration.php
), ma se hai costruito il tuo modulo come pacchetto Composer, sarà nella directory di Composer vendor/
e dovrai ingannare Composer per caricare il tuo modulo registration.php
(Magento non cerca vendor/
da solo).
Se controlli qualsiasi modulo Magento2 composer.json
in vendor/magento/module-*
, vedrai una "autoload"
sezione che fa riferimento al registration.php
file. Quindi Composer caricherà automaticamente il tuo modulo registration.php
che "dirà" a Magento2 dove si trova il tuo modulo.
Questo è un frammento del modulo Magento Checkoutcomposer.json
:
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"Magento\\Checkout\\": ""
}
}
Se hai il tuo modulo in un repository separato e caricato tramite compositore, allora quanto sopra è la strada da percorrere. Se non lo hai in un repository separato, il tuo modulo non appartiene vendor/
ma dentro app/code/
.