registration.php còn thiếu
Rõ ràng Vendorname_Modulenamemô-đun của tôi đã thiếu registration.php. Tôi đang chạy phiên bản Magento2 mới nhất từ GitHub.
Mỗi mô-đun phải đăng ký chính nó trong ComponentRegistrar. Một điển hình registration.phpcho một mô-đun (trong thư mục gốc của mô-đun của bạn) có thể chứa:
<?php
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Vendorname_Modulename',
__DIR__
);
Cũng xem bất kỳ thành phần cốt lõi Magento trong app/code/Magento/hoặc vendor/magento/thư mục của bạn
registration.php KHÔNG thiếu
Ngoài ra, nếu bạn có một registration.phptệp trong mô-đun của mình, nhưng bạn vẫn gặp lỗi này, điều này có nghĩa là bạn registration.phpđã không được tải và Magento2 không biết về mô-đun của bạn.
Mô-đun của bạn phải ở dưới app/code/(nơi Magento2 sẽ tìm kiếm các thư mục trong app/code/và tìm mô-đun của bạn registration.php), nhưng nếu bạn đã xây dựng mô-đun của mình dưới dạng gói Trình soạn thảo, thì nó sẽ nằm trong vendor/thư mục của Nhà soạn nhạc và bạn sẽ cần lừa Nhà soạn nhạc để tải mô-đun của bạn registration.php(Magento không tự tìm kiếm vendor/).
Nếu bạn muốn kiểm tra bất kỳ mô-đun của Magento2 composer.jsontrong vendor/magento/module-*, bạn sẽ thấy một "autoload"phần mà tài liệu tham khảo các registration.phptập tin. Vì vậy, Trình soạn thảo sẽ tự động tải mô-đun của bạn, phần registration.phpnày sẽ "thông báo" cho Magento2 vị trí mô-đun của bạn.
Đây là một đoạn từ mô-đun Magento Checkoutcomposer.json :
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"Magento\\Checkout\\": ""
}
}
Nếu bạn có mô-đun của mình trong một kho lưu trữ riêng biệt và được tải thông qua trình soạn thảo, thì đây là cách để đi. Nếu bạn không có nó trong một kho lưu trữ riêng biệt, thì mô-đun của bạn không thuộc về vendor/mà nằm trong app/code/.