ในสิ่งที่กรณีที่เราจำเป็นต้องเรียกใช้คำสั่งนี้magento setup:di:compile
?
pub/static
ในสิ่งที่กรณีที่เราจำเป็นต้องเรียกใช้คำสั่งนี้magento setup:di:compile
?
pub/static
คำตอบ:
ระหว่างการปรับใช้ (เช่นเมื่อมีการเปลี่ยนแปลงระบบในโหมดการผลิต)
โปรดทราบว่าในโหมดการผลิต (เวอร์ชั่น 2.0.5 และก่อนหน้า) คุณต้องใช้การรวบรวม "ผู้เช่าหลายคน" แก้ไขใน 2.0.6 และใหม่กว่า
bin/magento setup:di:compile-multi-tenant
ดู: http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-compiler.html
นอกจากนี้คุณยังสามารถใช้สะสมในโหมดการพัฒนาซึ่งจะเพิ่มความเร็วในเว็บไซต์ แต่ในทางกลับกันมันช้าลงการพัฒนาเพราะคุณจะต้องเรียกใช้bin/magento setup:di:compile
ทุกครั้งที่คุณเพิ่มชั้นเรียนใหม่ที่มีการอ้างอิง (พารามิเตอร์คอนสตรัค) หรือการเปลี่ยนแปลงการอ้างอิงของชั้นเรียนที่มีอยู่
นี่เป็นทางเลือกและอาจไม่ใช่ความคิดที่ดี หากคุณทำการรวบรวมในสภาพแวดล้อมการพัฒนาของคุณแล้วให้ลบไฟล์var/di
เพื่อปิดการใช้งาน
var/generation
?
Action
ทดสอบ - โหลดหน้าผิดพลาด - ลบdi
และgeneration
โฟลเดอร์โหลดใหม่ทำงาน - เพิ่มการขึ้นต่อใหม่, หน้าโหลดซ้ำ, ข้อผิดพลาด อย่างไรก็ตามไม่มีการdi
สร้างโฟลเดอร์ - ลบgeneration
อีกครั้งโหลดทำงาน สรุป: setup:di:compile
ลบโฟลเดอร์รุ่นหลังเพิ่มการอ้างอิงและคุณจะไม่ต้องทำงาน หากคนอื่นสามารถยืนยันสิ่งนี้ได้นั่นก็ยอดเยี่ยมมาก
ตามความคิดเห็นของฉันในคำตอบอื่น:
คุณสามารถหลีกเลี่ยงการรันsetup:di:compile
คำสั่งหลังจากทุกครั้งที่คุณเพิ่มการพึ่งพาโดยเพียงแค่การลบvar/di
และvar/generation
โฟลเดอร์ก่อนที่จะโหลดหน้าใหม่
จากการทดสอบของฉันเองวีโอไอพีจะสร้างvar/generation
โฟลเดอร์ขึ้นใหม่แต่จะไม่สร้างvar/di
โฟลเดอร์จนกว่าsetup:di:compile
จะรันอีกครั้ง หมายความว่าคุณควรมีvar/generation
โฟลเดอร์ที่จะลบเท่านั้น
ขันพอนี้ยังทำงานร่วมกับและpub/static/*
setup:static-content:deploy
นี่เป็นเพราะวีโอไอพีดูเหมือนจะสร้างการเชื่อมโยงไปยังไฟล์ที่จำเป็นหากเนื้อหาแบบคงที่ถูกสร้างขึ้นโดยการโหลดหน้าใหม่แทนที่จะเป็น CLI
ผู้คนในสำนักงานของเรามีปัญหาในการเรียกใช้คำสั่งข้างต้นในขณะที่ใช้ Docker for Mac การประมวลผลไฟล์ช้าเกินไป โดยใช้ขั้นตอนข้างต้นการพัฒนาควรเร็วขึ้นมาก
มันอาจจะดีที่สุดที่จะทราบว่านี้จะไม่ทำงานเมื่ออยู่ในโหมดการผลิตหรือเริ่มต้น นี่เป็นเพียงการพัฒนา ดังกล่าวโดย Fabian Schmengler การโหลดหน้าเริ่มต้นใหม่จะช้ากว่าปกติ แต่ไม่ควรช้าเท่ากับการรันsetup:static-content:deploy
หรือ `setup: di: compile
สำหรับการอ้างอิงผมใช้เวอร์ชัน2.1.5
การรวบรวมการพึ่งพา
ในการเริ่มต้นเราควรอธิบายถึงปัญหาที่คำสั่งเหล่านี้พยายามแก้ไข เมื่อคุณจัดส่งระบบ Magento 2 เพื่อการผลิตคุณจะต้องเรียกใช้คำสั่งต่อไปนี้
php bin/magento setup:di:compile
คำสั่งนี้สแกนรหัสในระบบของคุณและสร้างจำนวนล่วงหน้า (ส่วนใหญ่เกี่ยวข้องกับระบบจัดการวัตถุและการฉีดพึ่งพา) ที่ Magento จะโหลดแบบไดนามิกเมื่อคุณทำงานในโหมดนักพัฒนาซอฟต์แวร์ นี่เป็นทั้งประสิทธิภาพและความปลอดภัยและการพูดคุยอย่างเต็มที่นั้นเกินขอบเขตของบทความนี้