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
файл. Таким чином, композитор автоматично завантажить модуль, registration.php
який "скаже" Magento2, де знаходиться ваш модуль.
Це фрагмент із модуля Magento Checkoutcomposer.json
:
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"Magento\\Checkout\\": ""
}
}
Якщо у вас є модуль в окремому сховищі та завантажений через композитор, то вищенаведений шлях. Якщо у вас немає його в окремому сховищі, то ваш модуль не належить до, vendor/
а в app/code/
.