เลือกไฟล์ที่จะติดตั้งผ่านนักแต่งเพลงตามเวอร์ชั่นวีโอไอพี


11

มันจะสะดวกมากที่จะรวมโค้ดหลายเวอร์ชันในโมดูลผู้แต่งและจะมีนักแต่งเพลงที่จะปรับใช้เวอร์ชันใดขึ้นอยู่กับเวอร์ชันวีโอไอพีของเป้าหมายการติดตั้ง

ตัวอย่างเช่นสำหรับ Magento> 1.7 ให้ใช้ system.xml ซึ่งรวมถึงคุณสมบัติที่tooltipซ้อนกันgroupและคุณลักษณะที่ทันสมัยอื่น ๆ แต่สำหรับ Magento เวอร์ชันเก่าให้ใช้ไฟล์เวอร์ชั่นที่แยกส่วนซึ่งไม่รวมการประกาศเหล่านั้น

วิธีนี้สามารถใช้ได้กับไฟล์อื่น ๆ อีกมากมายในโครงสร้างโมดูลมาตรฐานเช่นกัน

ตัวเลือกสำหรับการใช้งานที่มีนักแต่งเพลงmap, modmanหรือpackage.xmlAFAIK ไม่มีใครที่มีสติปัญญาใด ๆ เกี่ยวกับระบบเป้าหมาย package.xmlตัวเลือกที่เป็นไปได้ยากมากที่จะเปลี่ยน แต่mapสามารถ ...

สำหรับฉันดูเหมือนว่าจะมีนักพัฒนาส่วนขยายจำนวนมากที่จะได้รับประโยชน์จากวิธีการลดความสง่างาม มีใครพบวิธีแก้ไขปัญหานี้บ้างไหม?

คำตอบ:


8

ฉันยังไม่มีวิธีแก้ปัญหาและยังไม่เป็นปัญหาสำหรับฉัน แต่ฉันมีข้อเสนอที่สามารถใช้งานได้:

  1. คุณจำเป็นต้องรักษาการแยกสาขาเวอร์ชันเพื่อกำหนดเป้าหมายเวอร์ชัน Magento ที่แตกต่างกัน การปรับใช้ไฟล์ที่แตกต่างกันในเวอร์ชั่นเดียวกันขึ้นอยู่กับเวทย์มนตร์นักแต่งเพลงบางอย่างจะไม่สามารถทำงานได้ดี ดังนั้นการขยายของคุณอาจมี1.xสาขาสำหรับความเข้ากันได้กับ Magento รุ่นเก่า (เช่นสูงสุด 1.6) และ2.xสาขาสำหรับรุ่นที่ทันสมัยกว่า เพิ่มแท็กเวอร์ชันตาม แน่นอนว่าคุณสามารถรักษาสาขาได้มากเท่าที่คุณต้องการและเขียนรหัสที่ดีที่สุดสำหรับ Magento แต่ละรุ่น แต่ IMHO นี้ไม่คุ้มค่ากับความพยายามและสาขาหนึ่ง "ทันสมัย" และ "มรดก" หนึ่งสาขาควรจะพอเพียง มันขึ้นอยู่กับคุณว่าคุณต้องการที่จะย้อนกลับไปได้ไกลแค่ไหนกับสาขา "ทันสมัย" มันสามารถเป็นเวอร์ชั่นรองล่าสุดได้
  2. เพิ่มข้อกำหนดสำหรับ Magento เช่นนี้:

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

    และ

    "require": {
        "magento/magento-ce": ">=1.8"
    }
  3. ตอนนี้ข้อเสียส่วนที่คุณไม่มีอิทธิพลเต็มที่อีกต่อไป: ไม่มีmagento/magento-ceแพ็คเกจอย่างเป็นทางการดังนั้นผู้ใช้ส่วนขยายของคุณอาจติดตั้ง Magento จากกระจกจัดการชุมชนเช่นhttps://github.com/firegento/magento -ceหรือจากพื้นที่เก็บข้อมูลของตัวเอง สิ่งเหล่านี้จะต้องแทนที่magento/magento-ceแพ็คเกจ"เสมือน" ของรุ่นเดียวกัน (มีตัวยึดตำแหน่งแทนที่ด้วยตัวเองดังนั้นคุณไม่จำเป็นต้องปรับแต่ง composer.json สำหรับการอัปเดตแต่ละเวอร์ชั่น):

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

สิ่งนี้จะใช้งานได้ดีหากการประชุมดังกล่าวได้รับการยอมรับอย่างกว้างขวางและสำหรับผู้ใช้ที่ติดตั้ง Magento จริง ๆ ผ่านการพึ่งพาผู้แต่งซึ่งอาจไม่ใช่เสียงส่วนใหญ่

ดังนั้นวิธีการที่สมจริงยิ่งขึ้นคือเพียงทำตามขั้นตอนที่ 1 และแนะนำให้ผู้ใช้ของคุณต้องการเวอร์ชันหลักที่แตกต่างกัน / differnt หากพวกเขาใช้เวอร์ชัน Magento ที่เก่ากว่า 1.x

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.