Magento 2 là yêu cầu nhà soạn nhạc dành cho tiện ích mở rộng


8

Khi viết một phần mở rộng, việc thêm magento/project-community-editionvào require-devphần composer.json có hợp lý không?

Ý tưởng đằng sau đó là nó sẽ chỉ yêu cầu composer installquay lại bản cài đặt Magento hoàn chỉnh để phát triển hoặc CI.

Để thiết lập cơ sở dữ liệu, tôi sẽ thêm một tập lệnh sau khi cài đặt bin/magento setup:install.

Để sử dụng các công cụ kiểm tra, bạn cần sao chép autoload-devrequire-devcác phần từ magento/project-community-editionvì chúng chỉ được sử dụng từ gốc chứ không phải từ yêu cầu.

Một nhược điểm mà tôi thấy là bạn phải thay đổi phiên bản bắt buộc để thử nghiệm trên nhiều hơn hai phiên bản khác nhau (hai vì bạn có thể chỉ định một phạm vi và cài đặt một lần với --prefer-lowest), nhưng điều đó tương đối dễ để xử lý.

Bất cứ điều gì khác mà tôi cần phải xem xét?

Câu trả lời:


4

Câu trả lời phụ thuộc vào nhu cầu CI của bạn là gì.

Đối với các bài kiểm tra đơn vị, tôi hiện đang xem xét cách tiếp cận chỉ bao gồm trong phần yêu cầu, các mô-đun Magento thực tế mà tôi có phụ thuộc trực tiếp (mà tôi nhận được gần như tất cả các mô-đun theo cách này dù sao cũng là để Magento sắp xếp):

"require": {
  "magento/module-backend": "~100.0.2",
  "magento/module-sales": "~100.0.2"
}

Điều này hoạt động tốt đối với một trong các tiện ích mở rộng của tôi, xem Travis ở đây nhưng đang gặp phải một vấn đề thú vị trên một tiện ích mở rộng khác, nơi Magento sẽ tự động tạo giao diện cho giả - chi tiết tại đây.

Nếu bạn đang tìm kiếm các bài kiểm tra đơn vị, tôi nghĩ sẽ hợp lý khi có môi trường Magento dựng sẵn, trong đó bạn cài đặt tiện ích mở rộng thay vì chạy tập lệnh cài đặt cho môi trường Magento trên mọi bản dựng.


1

Có vẻ hợp lý. 2 điểm cần lưu ý:

  1. Cài đặt qua trình soạn thảo mất khá nhiều thời gian
  2. Khi bạn có một loạt các mô-đun, thật khó chịu khi hỗ trợ / xử lý quy trình cài đặt bên trong CI với các tập lệnh duy nhất cho mỗi mô-đun. Khi bạn cần thay đổi một cái gì đó ở đây, bạn sẽ phải thay đổi tất cả các tiện ích mở rộng bạn có.

Một trong những cách để tránh nó, có thể là giữ mọi thứ liên quan đến việc xây dựng trên CI trong một kho lưu trữ riêng biệt và đưa nó vào các mô-đun như là các phần phụ.


Được đăng thay mặt Peter Samoilov từ frontWorks vì anh ấy không ở trên StackExchange. :)


1

Thật hợp lý khi chỉ bao gồm các mô-đun Magento mà mô-đun của bạn yêu cầu:

  • Rõ ràng cho mọi người cài đặt nó những gì nó phụ thuộc vào, toàn bộ phiên bản cộng đồng là quá rộng.
  • Bạn có thể muốn chủ yếu kiểm tra đơn vị nó (và một số thử nghiệm tích hợp), vì vậy nó không cần một webshop hoạt động.
  • Các bài kiểm tra chức năng có thể được tạo trong kho lưu trữ webshop chính của bạn, vì ở đó có ý nghĩa hơn khi sử dụng một frontend và cũng phụ thuộc vào toàn bộ khung làm những thứ được kết nối với nhau.

Về cơ bản, mô-đun của bạn không phụ thuộc vào toàn bộ phiên bản cộng đồng, nó chỉ phụ thuộc vào một phần của nó vì vậy đó là những gì cần chỉ định. Bằng cách này, bạn vẫn có thể kiểm tra nó, nhưng cũng giữ rõ các phụ thuộc là gì.


0

cũng không chắc chắn về điều này. Cách tiếp cận đầu tiên của tôi sẽ là cài đặt magento2 từ hình ảnh docker để chạy tất cả các thử nghiệm.

Điều này sẽ cung cấp cho bạn một env chạy thử trong một thời gian khá ngắn, nhưng bạn phải tạo một cấu hình cụ thể hơn so với cài đặt mọi thứ thông qua trình soạn thảo tôi nghĩ.

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.