registration.php
отсутствует
Видимо мой Vendorname_Modulename
модуль не хватает registration.php
. Я использую последнюю версию Magento2 от GitHub.
Каждый модуль должен зарегистрироваться в ComponentRegistrar
. Типичный registration.php
для модуля (в корне вашего модуля) может содержать:
<?php
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Vendorname_Modulename',
__DIR__
);
Также посмотрите любой основной компонент Magento app/code/Magento/
или ваш vendor/magento/
каталог
registration.php
НЕ отсутствует
В дополнение к этому, если у вас действительно есть registration.php
файл в вашем модуле, но вы все еще получаете эту ошибку, это означает, что ваш файл registration.php
не был загружен и Magento2 не знает о вашем модуле.
Ваш модуль должен быть в app/code/
папке (где Magento2 будет искать папки app/code/
и находить ваши модули registration.php
), но если вы создали свой модуль как пакет Composer, он будет в директории Composer, vendor/
и вам нужно будет обмануть Composer для загрузки вашего модуля registration.php
(Magento не ищет в vendor/
себе).
Если вы хотите проверить любой модуль Magento2 по composer.json
прибытию vendor/magento/module-*
, вы увидите "autoload"
раздел , который ссылается на registration.php
файл. Таким образом, Composer автоматически загрузит ваши модули, registration.php
которые « сообщат » Magento2, где находится ваш модуль.
Это фрагмент из модуля Magento Checkoutcomposer.json
:
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"Magento\\Checkout\\": ""
}
}
Если у вас есть свой модуль в отдельном репозитории и загружен через композитор, то вышесказанное - путь. Если у вас его нет в отдельном репозитории, то ваш модуль не принадлежит, vendor/
а находится в app/code/
.
Вы можете использовать его для любого расширения, ничего не меняя.
Это работает для любого местоположения расширения (
app/code
илиvendor
) и для любого типа расширения (модуль, словарь перевода).источник
Добавление к: если
registration.php
не отсутствуетПроверьте и подтвердите, если имя модуля в модуле
etc/module.xml
является правильным (не имя модуля в<sequence>
теге, если присутствует)источник
Это также может произойти, если разрешения не установлены правильно для каталога модуля и файлов. Убедитесь, что каталог и файлы могут быть прочитаны magento и веб-пользователем.
источник