registration.php
còn thiếu
Rõ ràng Vendorname_Modulename
mô-đ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.php
cho 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.php
tệ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.json
trong vendor/magento/module-*
, bạn sẽ thấy một "autoload"
phần mà tài liệu tham khảo các registration.php
tậ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.php
nà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/
.