มีส่วนขยายที่ดีสำหรับนักพัฒนา Magento ที่โดยปกติแล้วคุณไม่ต้องการให้มีในระบบจริง
คุณจะเก็บมันไว้ในที่เก็บโครงการได้อย่างไร
มีส่วนขยายที่ดีสำหรับนักพัฒนา Magento ที่โดยปกติแล้วคุณไม่ต้องการให้มีในระบบจริง
คุณจะเก็บมันไว้ในที่เก็บโครงการได้อย่างไร
คำตอบ:
มีสองเทคนิคที่ค่อนข้างใหม่ที่จะทำ:
ใช้modmanเพื่อให้คุณสามารถควบคุมได้ด้วยตัวเองว่าจะปรับใช้สำหรับแต่ละสภาพแวดล้อมอย่างไร นี่หมายความว่าคุณทำงานmodman deploy [name-of-dev-extension]
ที่สภาพแวดล้อมการพัฒนาเท่านั้น
ใช้นักแต่งเพลงคุณภาพเยี่ยมกับcomposer.json
สถานการณ์ที่แตกต่างกันสำหรับสภาพแวดล้อมที่แตกต่างกัน และวิธีที่ง่ายยิ่งขึ้นคือการระบุส่วนขยายเหล่านั้นเป็นโมดูล dev และติดตั้งโครงการโดยใช้--require-dev
สวิตช์บนเครื่องพัฒนาของคุณ
สิ่งเหล่านี้มักจะสามารถปิดการใช้งานได้อย่างสะดวกสบายด้วยการกำหนดค่าธงดังนั้นพวกเขาจึงมีการใช้งานทางเทคนิค แต่ไม่ได้ทำอะไรเลย หากคุณตั้งค่าสถานะนี้เป็นเท็จในapp/etc/local.xml
ระบบสดของคุณคุณควรจะปรับ
local.xml
ไฟล์ไว้ใน repo ของคุณ ซึ่งอาจเป็นกรณี
local.xml
มักจะไม่อยู่ใน repo
ดูMageTrashAppซึ่งสร้างขึ้นที่ Magento Hackathon ในกรุงเบอร์ลินเมื่อเร็ว ๆ นี้ ช่วยให้คุณสามารถยกเลิกการเปิดใช้งานโมดูลผ่านแผงการดูแลระบบ
วิธีง่ายๆในการทำเช่นนี้คือการปิดการใช้งานโมดูลใน / etc / modules ดันมันละเว้นไฟล์ในเครื่องและเปิดใช้งานอีกครั้ง
ฉันคิดว่าวิธีที่ดีที่สุดในการจัดการกับสิ่งนี้คือเก็บโมดูลเหล่านั้นทั้งหมดไว้ใน local codePool และปิดการใช้งานโมดูลโลคัลทั้งหมดบน live ด้วยบรรทัดนี้ใน local.xml ของคุณ:
<disable_local_modules>true</disable_local_modules>
หรือคุณสามารถ "ปิดการใช้งานเอาท์พุทโมดูล" ในแบ็กเอนด์ในสภาพแวดล้อมที่มีชีวิตของคุณ (ระบบ -> การกำหนดค่า -> ขั้นสูง) อย่างไรก็ตามสิ่งนี้ไม่ได้ปิดใช้งานโมดูลทั้งหมด แต่บางทีมันก็เพียงพอแล้วที่คุณต้องการซ่อนมันไว้
สิ่งเดียวที่ฉันคิดได้ก็คือเขียนโค้ดที่สามารถดึงออกมาได้ เพียงตรวจสอบว่าอยู่ในโหมดนักพัฒนา ( Mage::getIsDeveloperMode()
) จากนั้นปิดการใช้งานโมดูล ฉันพบรายละเอียดเพิ่มเติมเกี่ยวกับการบรรลุเป้าหมายได้ที่นี่: /programming/6520634/magento-how-to-disable-module-programmatically
local
โมดูลจะบังคับให้คุณย้ายโมดูลอื่น ๆ ทั้งหมดจากlocal
codePool ไปcommunity
ยังและทำเพื่อส่วนขยายในอนาคตทั้งหมด ปิดการใช้งานโมดูลเอาท์พุทตามที่คุณบอกว่ายังอนุญาตให้ส่วนขยายทำงานช้าลงในร้านค้าของคุณ และโซลูชันที่ 3 จะต้องมีการแก้ไขที่จะถูกเขียนทับด้วยการอัปเดตส่วนขยาย
ฉันมักจะใส่พวกเขาลงในสภาพแวดล้อมการทดสอบของฉัน แต่อย่าตรวจสอบพวกเขาในระบบควบคุมเวอร์ชันเช่นโดยใช้.gitignore
ไฟล์เพื่อแยกพวกเขาออกจากการพิจารณากระทำ
มีสไลด์ในการประชุม Imagine 2011 โดย Erik Hansen เขาระบุรหัสในสไลด์ซึ่งเป็นด้านล่าง (สำหรับโหมดนักพัฒนาซอฟต์แวร์)
# File : index.php
if(preg_match('/^stage\.|\.dev$/', $_SERVER['HTTP_HOST'])) {
$_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
}
นี่คือ Erik เปิดใช้งานการตั้งค่าตามโดเมนย่อยซึ่งคุณสามารถกำหนดเองได้