แนวปฏิบัติที่ดีที่สุดสำหรับการติดตั้งส่วนขยายของบุคคลที่สามใน Magento 2 คืออะไร


16

ขณะทำงานในโครงการลูกค้าสำหรับ Magento 2 - ฉันได้ค้นพบวิธีการมากมายในการโหลดและติดตามส่วนขยายของบุคคลที่สาม

เมื่อพิจารณาตามนี้สมมติว่าเรากำลังใช้วิธีการติดตั้งรวม (ผู้แต่ง!) แนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการส่วนขยายของบุคคลที่สามคืออะไร

จนถึงตอนนี้ทุกส่วนขยายที่ฉันซื้อหรือดาวน์โหลดมีไฟล์ composer.json ของตัวเอง - และฉันรู้ว่าผู้เขียนส่วนขยายอย่างน้อยสามวิธีจะแนะนำให้ติดตั้งส่วนขยาย:

  1. คัดลอกไฟล์เหล่านี้ลงในแอพ / รหัส
  2. คัดลอกซิปนี้ไปยังโฟลเดอร์เพิ่มเป็นที่เก็บสิ่งประดิษฐ์และจำเป็นต้องใช้
  3. เพิ่มที่เก็บออนไลน์นี้ (พร้อม / ไม่รับรองความถูกต้อง) และต้องการมัน

จนถึงตอนนี้ฉันได้เจอ 1 & 2 และฉันก็สงสัยว่า # 3 มีอยู่จริง แต่จากนั้นสังเกตว่าคนที่แนะนำ # 1 ฉันพบว่าคุณสามารถมีพื้นที่เก็บข้อมูล "เส้นทาง" - ย้ายส่วนขยายของฉันจาก app / รหัสไปยังโฟลเดอร์เดียวกันฉันตัดสินใจที่จะใส่สิ่งประดิษฐ์เหล่านี้และต้องการมันอย่างนั้น

ในกระบวนการนี้การกำหนดค่าที่เก็บของฉันดูเหมือน:

"repositories": {
    "0": {
        "type": "composer",
        "url": "https://repo.magento.com/"
    },
    "artifacts": {
        "type": "artifact",
        "url": "artifacts"
    },
    "third-party": {
        "type": "path",
        "url": "artifacts/*/*"
    },
},

ดังนั้นคำถามของคุณคืออะไร - วิธีปฏิบัติที่ดีที่สุดที่นี่คืออะไร คุณจัดการส่วนขยายของบุคคลที่สามได้อย่างไร

จนถึงตอนนี้ฉันเชื่อว่าวิธีที่ฉันทำมันเป็นวิธีที่ดีที่สุด - ถ้าเพียงเพราะผู้แต่งของพวกเขาได้รับการอ่านและความขัดแย้งในการพึ่งพา (หรือข้อ จำกัด เวอร์ชัน PHP) จะปรากฏชัดเจน - แต่ฉันไม่คิดว่ามันชัดเจนพอ

คำตอบ:


8
  • ติดตั้งโมดูลผ่านผู้ประพันธ์เป็นวิธีที่ดีที่สุดใน Magento 2 เพราะมีข้อดีหลายประการถ้าเราติดตั้งโมดูลผ่านผู้ประพันธ์

  • หากคุณต้องการอัพเกรดโมดูลคุณเพียงแค่ต้องเปลี่ยนรุ่นในcomposer.jsonไฟล์และเรียกใช้composer updateคำสั่งที่ rootMagentoento

  • ในระหว่างการติดตั้งด้วยตนเองคุณต้องดาวน์โหลดโมดูลก่อนและแทนที่ไฟล์เก่าและรันsetup:upgradeคำสั่งเพื่ออัพเกรดโมดูล

  • โมดูลทั้งหมดที่ติดตั้งผ่านผู้แต่งจะถูกดาวน์โหลดในโฟลเดอร์ผู้ขาย

  • Magento ใช้https://repo.magento.com/ URL เริ่มต้นเพื่อดาวน์โหลดโมดูลหากคุณซื้อโมดูลจาก Magento Marketplace

  • หากคุณซื้อโมดูลจากเว็บไซต์บุคคลที่สาม คุณต้องเพิ่มที่เก็บใน composer.json เพื่อดาวน์โหลดและติดตั้งโมดูล

ตัวอย่างเช่น

"repositories": {
    "0": {
        "type": "composer",
        "url": "https://repo.magento.com/" //Default Magento Repositry
    },
    "thirdparty-module": {
        "type": "composer",
        "url": "https://mymodule.thirdparty.com/" //Third Party Repositary
    }
},

ในความคิดของฉันนักแต่งเพลงเป็นวิธีที่ดีที่สุดและเหมาะสมในการติดตั้งโมดูลใน Magento 2

ติดตั้งโมดูลบุคคลที่สามผ่านผู้แต่ง:

  1. รันคำสั่งนี้เพื่อเพิ่มที่เก็บใหม่ใน conposer.json

ผู้แต่ง config repositories.thirdparty-module คอมไพล์https://thirdparty-composer-url.com

  1. ตอนนี้เรียกใช้คำสั่งนี้เพื่อเพิ่มองค์ประกอบและรุ่นของโมดูลใน composer.json

ผู้แต่งต้องการ [component-name]: [version]

Forex.  composer require prince/helloword:1.0.0
  1. ตอนนี้รันการอัปเดตผู้แต่งเพื่อดาวน์โหลดโมดูลจากที่เก็บ

การปรับปรุงผู้แต่ง

  1. ตอนนี้รันsetup:upgrade เพื่อติดตั้งและลงทะเบียนโมดูลconfig.php

php bin / magento setup: upgrade


1

คำตอบทั้งหมดแปลก ๆ พลาดจุดที่คุณระบุว่าสิ่งประดิษฐ์เป็นไปได้หนึ่ง:

https://getcomposer.org/doc/05-repositories.md#artifact

ผู้จัดหาโมดูลอาจไม่มี repo ที่คุณสามารถใช้เพื่อให้ได้คำตอบสิ่งประดิษฐ์ ส่วนใหญ่ (ที่ฉันได้ทำงานข้าม) จะให้แพคเกจไปรษณีย์สำหรับไฟล์ของคุณเพื่อให้ใช้กับนักแต่งเพลงผ่านสิ่งประดิษฐ์ IMHO เป็นวิธีที่ง่ายที่สุด

แน่นอนคุณสามารถนำเสนอ repo ของคุณเองสำหรับไฟล์โมดูลบุคคลที่สาม แต่โดยส่วนตัวแล้วฉันไม่เห็นจุดที่จะไปสู่ขั้นตอนพิเศษเหล่านั้น

คิดว่ามันคุ้มค่าที่จะพูดถึงถ้าคุณเพิ่มพวกเขาลงในโฟลเดอร์แอพและยืนยันไฟล์หรือด้วย repo ของคุณเองคุณสามารถมองเห็นไฟล์ที่มีการเปลี่ยนแปลงระหว่างเวอร์ชันของส่วนขยายของบุคคลที่สามได้อย่างง่ายดาย

อย่างไรก็ตามฉันพบบทความเกี่ยวกับการใช้ arficats https://magently.com/blog/magento-2-the-right-way-to-install-external-modules/ดังนั้นผู้อื่นจึงใช้การไหลดังกล่าวเช่นกัน


-1

มีสองวิธีในการทำโปรดค้นหาสิ่งเหล่านี้ด้านล่าง

(1) การติดตั้งอัตโนมัติโดยใช้ผู้แต่ง

ซื้อผลิตภัณฑ์ดาวน์โหลดจากตลาดและตรวจสอบชื่อของส่วนประกอบจากข้อมูลผลิตภัณฑ์ที่ดาวน์โหลดและใช้รหัสตัวอย่างด้านล่างเพื่ออัปเดตไฟล์composer.jsonในรูทแอปพลิเคชัน

หมายเหตุ:อย่าลืมรวมไฟล์ composer.lock เพื่อรวมไว้ในคอมมิทคอมของคุณ

การอ้างอิงอย่างเป็นทางการ: http://devdocs.magento.com/guides/v2.0/cloud/howtos/install-components.html

(2) การติดตั้งด้วยตนเอง

ดาวน์โหลดไฟล์ zip คอมโพเนนต์จากการดาวน์โหลดของคุณและคลายซิปที่ตำแหน่งชั่วคราวและตรวจสอบว่าไฟล์ registration.php ที่นั่นคุณจะเห็นชื่อผู้ขายและชื่อส่วนประกอบที่ตรงกัน สร้างโครงสร้างไดเรกทอรีที่คล้ายกันภายใน

app/code/VendorName/ComponentName

แตกไฟล์ zip ของคุณไว้ด้านบนโครงสร้างไดเรกทอรีและเรียกใช้คำสั่งด้านล่างจากไดเรกทอรีรากของแอปพลิเคชันของคุณเพื่อเปิดใช้งานโมดูล

php bin/magento module:enable VendorName_ComponentName
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush
php -R 777 var/

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

php bin/magento module:status

หวังว่านี่จะช่วยได้!


ฉันยังไม่พบคำตอบที่ถูกต้องแม้ว่าจะสับสนกับเรื่องนี้มากขึ้น
Kapil Yadav

-2

ฉันติดตั้งส่วนขยายสำหรับ magento2 โดยวางส่วนขยายไว้ใต้ app / code และเว็บไซต์ทำงานได้ดีสำหรับฉันดังนั้นการติดตั้งส่วนขยายภายใต้ app / code เป็นวิธีหนึ่งในการติดตั้งส่วนขยาย!


-2

วิธีปฏิบัติที่ดีที่สุดในการจัดการส่วนขยายของบุคคลที่สามคือการดาวน์โหลดไฟล์ zip และนำเข้า zip ภายในโฟลเดอร์app / codeและทำการคลายซิป

หลังจากนั้นใช้คำสั่งดังต่อไปนี้

  1. php bin / โมดูล magento: เปิดใช้งาน _
  2. php bin / magento setup: upgrade
  3. การตั้งค่า php bin / magento: di: compile

ถูกเตือน: นี่ไม่ใช่วิธีปฏิบัติที่ดีที่สุด การติดตั้งโมดูลผ่านไม่ได้ที่จะได้รับการแนะนำมากกว่าการใช้app/code composerใช้composerแทน
Jisse Reitsma
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.