Magento 2: Mô-đun của bên thứ ba đi đâu?


22

Tôi vừa cài đặt bản phát hành chính thức đầu tiên của Magento 2. Tôi rất ngạc nhiên khi thấy rằng app/codethư mục đã biến mất

app/code

Điều này là cho cả phiên bản được tải xuống từ trang web phiên bản được cài đặt qua trình soạn thảo. Ngoài ra, khi tôi cố gắng tự tạo app/codethư mục và sau đó thực hiện php bin/magento module:enable Pulsestorm_MyModuleđể kích hoạt mô-đun mẫu, tôi đã gặp lỗi sau

 Unknown module(s): 'Pulsestorm_MyModule'

Các mô-đun bên thứ ba được cho là sống ở đâu? Nếu câu trả lời là "kho lưu trữ nguồn và được cài đặt qua trình soạn thảo", thì nhà phát triển mô-đun cần cấu trúc các mô-đun của họ để sống trong kho Magento 2 như thế nào?

Câu trả lời:


18

Tốt nhất là 3PL sẽ sống trong thư mục nhà cung cấp cùng với mọi thứ khác. Tuy nhiên, :) Tất cả chúng ta đều biết có mã tùy chỉnh thường được viết cho hầu hết mọi trang web tùy chỉnh ngoài đó và IMO này thuộc về ứng dụng / mã / tĩnh. Có, bạn vẫn có thể chạy một mô-đun từ ứng dụng / mã.

Tất cả các mô-đun, bất kể vị trí, nên có một composer.jsonvà một registration.phptệp được sử dụng để đưa mô-đun vào hệ thống. Bạn cũng cần các etc/modules.xmltập tin. Về mặt kỹ thuật, đây là tất cả những gì cần thiết để đăng ký một mô-đun:

$ tree app/code/Alger/
app/code/Alger/
└── Skeleton
    ├── composer.json
    ├── etc
       └── module.xml
    └── registration.php

2 directories, 3 files

Để khởi động mô-đun, bạn cần chạy setup:upgradevà sau đó cache:flushđể hệ thống vừa nhận biết vừa tải thành phần mới của bạn:

$ bin/magento module:enable Foo_Bar
$ bin/magento setup:upgrade -q && bin/magento cache:flush -q

Cập nhật: Hai phương pháp để cài đặt mô-đun từ repo GitHub công khai: https://gist.github.com/davidalger/77761f13d9752b117f35


Tôi không cần mô-đun: kích hoạt trừ khi trước đó tôi đã tắt nó. Có một tham số bạn có thể thiết lập để cài đặt tiện ích mở rộng bị vô hiệu hóa?
Eirik

@Eirik Nếu bạn cài đặt từ repo qua nhà soạn nhạc, nó được thực hiện bởi nhà soạn nhạc. Nếu bạn chỉ cần đặt các tệp này ở đó, đó là khi bạn cần kích hoạt nó. Ít nhất tôi khá chắc chắn đó là những gì tôi tìm thấy ngay sau GA khi tôi đang đánh bóng các slide cho một cuộc nói chuyện ở đây tại #phpworld :)
davidalger

cảm ơn rất nhiều vì đã không được repo khi tôi đang làm việc tại địa phương. Thông tin tuyệt vời.
Eirik

6

Alan, họ vẫn đi vào app/code. Hãy chắc chắn rằng bạn có một registration.phpthư mục modulename chứa các mục sau:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Namespace_Modulename',
    __DIR__
);

Sau đó chạy:

php bin/magento setup:upgrade

Chỉ cần thử nghiệm trên phiên bản Magento 2 CE mới và hoạt động đúng.


Cảm ơn bạn @Eirik, đó thực sự là nó. Không rõ là register.php là thứ gì đó không có trong đó, hay thứ gì đó sẽ tạo ra bản phát hành cuối cùng. Bây giờ khá rõ ràng :)
Alan Storm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.