Chọn tệp nào sẽ cài đặt qua Trình soạn thảo dựa trên phiên bản Magento


11

Sẽ rất thuận tiện khi bao gồm nhiều phiên bản mã trong mô-đun của nhà soạn nhạc và để nhà soạn nhạc tìm ra phiên bản nào sẽ triển khai, dựa trên phiên bản Magento của mục tiêu cài đặt.

Ví dụ: đối với Magento> 1.7, hãy sử dụng tệp system.xml bao gồm tooltip, lồng nhau groupvà các tính năng hiện đại khác nhưng đối với các phiên bản cũ hơn của Magento, hãy sử dụng phiên bản rút gọn của tệp không bao gồm các khai báo (ngắt) đó.

Cách tiếp cận này cũng có thể làm việc cho nhiều tệp khác trong cấu trúc mô đun chuẩn.

Các tùy chọn để triển khai nhà soạn nhạc là map, modmanhoặc package.xmlAFAIK, không ai trong số đó có bất kỳ thông tin nào liên quan đến hệ thống đích. Các package.xmltùy chọn là rất khó có thể thay đổi nhưng mapcó thể ...

Dường như với tôi rằng sẽ có rất nhiều nhà phát triển mở rộng sẽ được hưởng lợi từ phương pháp xuống cấp duyên dáng. Có ai tìm thấy một cách giải quyết cho việc này?

Câu trả lời:


8

Tôi không có cách giải quyết và nó chưa phải là vấn đề đối với tôi, nhưng tôi có một đề xuất có thể hoạt động:

  1. Bạn cần duy trì các nhánh phiên bản riêng biệt để nhắm mục tiêu các phiên bản Magento khác nhau. Triển khai các tệp khác nhau trong cùng một phiên bản tùy thuộc vào một số phép thuật của nhà soạn nhạc sẽ không hoạt động tốt. Vì vậy, phần mở rộng của bạn có thể có một 1.xnhánh để tương thích với các phiên bản Magento cũ hơn (ví dụ lên tới 1.6) và một 2.xnhánh cho các phiên bản hiện đại hơn. Thêm thẻ phiên bản cho phù hợp. Tất nhiên bạn có thể duy trì bao nhiêu nhánh tùy thích và viết mã tốt nhất cho mỗi phiên bản Magento nhưng IMHO điều này không đáng để nỗ lực và một nhánh "hiện đại" và một "di sản" nên đủ. Tùy thuộc vào bạn, bạn muốn tương thích ngược với nhánh "hiện đại" đến mức nào, thậm chí nó có thể chỉ là phiên bản nhỏ mới nhất.
  2. Thêm một yêu cầu cho Magento như thế này:

    "require": {
        "magento/magento-ce": "1.4-1.7"
    }

    "require": {
        "magento/magento-ce": ">=1.8"
    }
  3. Bây giờ đến nhược điểm, phần mà bạn không còn ảnh hưởng đầy đủ nữa: Không có magento/magento-cegói chính thức , vì vậy người dùng tiện ích mở rộng của bạn có thể sẽ cài đặt Magento từ một máy nhân bản được quản lý cộng đồng như https://github.com/firegento/magento -ce hoặc từ kho lưu trữ của riêng họ. Đây phải thay thế các "ảo" magento/magento-cegói của cùng một phiên bản (có một placeholder self.version , do đó bạn không cần phải điều chỉnh composer.json cho mỗi lần cập nhật phiên bản):

    "replace": {
        "magento/magento-ce": "self.version"
    }

Điều này sẽ chỉ hoạt động tốt nếu quy ước trên được chấp nhận rộng rãi và chỉ dành cho người dùng thực sự cài đặt Magento thông qua sự phụ thuộc của nhà soạn nhạc, có lẽ không phải là đa số.

Vì vậy, cách tiếp cận thực tế hơn là chỉ cần làm theo bước 1 và khuyên người dùng của bạn yêu cầu một phiên bản chính khác / nhánh khác, nếu họ chạy phiên bản Magento cũ hơn 1.x.

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.