ความสามารถในการbin/magento
ปฏิบัติการของ Magento เป็นเพียงส่วนประกอบของ Symfony Console ซึ่งหมายความว่าคุณสามารถค้นหาไฟล์แต่ละไฟล์ที่เรียกคืนได้สำหรับคำสั่งเดียว การตั้งชื่อจะเหมือนกันเสมอดังนั้นสำหรับการตั้งค่า: di: คอมไพล์คุณสามารถค้นหา DiCompileCommand.php ( setup/src/Magento/Setup/Console/Command/DiCompileCommand.php
)
มันจะเรียกใช้exeucte()
เมธอดอยู่เสมอเพื่อที่เราจะต้องมองหา ในฟังก์ชั่นนี้คุณจะเห็นการ$operations
ตั้งค่า var ซึ่งเต็มไปด้วยgetOperationsConfiguration()
วิธีการ วิธีการนี้โดยทั่วไปจะบอก DiCompileCommand ว่าจะรวบรวมอะไร
สิ่งแรกที่ฉันพยายามจะคืนก็เป็นเพียงส่วนของตัวสร้างโค้ดแอปพลิเคชันเช่นนั้น
private function getOperationsConfiguration(
array $compiledPathsList
) {
$excludePatterns = [];
foreach ($this->excludedPathsList as $excludedPaths) {
$excludePatterns = array_merge($excludedPaths, $excludePatterns);
}
return [
OperationFactory::APPLICATION_CODE_GENERATOR => [
'paths' => [
$compiledPathsList['application'],
$compiledPathsList['library'],
$compiledPathsList['generated_helpers'],
],
'filePatterns' => ['php' => '/\.php$/'],
'excludePatterns' => $excludePatterns,
]
];
}
นี่เป็นไปด้วยดีเวลารวบรวมก็ลดลงอย่างมาก
Compilation was started.
Application code generator... 1/1 [============================] 100% 45 secs 308.8 MiB
Generated code and dependency injection configuration successfully.
ตรงข้ามกับ;
Compilation was started.
Interception cache generation... 7/7 [============================] 100% 3 mins 377.0 MiBB8 MiB
Generated code and dependency injection configuration successfully.
แน่นอนว่านี่เป็นสิ่งที่คาดหวังตั้งแต่เราตัดสิ่งต่าง ๆ ออกไป แต่คุณไม่ได้ระบุที่ไฟล์ที่คุณต้องการที่จะมีการสร้าง ไม่สามารถสร้างไฟล์ทั้งหมดได้ในแต่ละโมดูลเนื่องจากตัวอย่างเช่นคลาส Interception นั้นอาจขึ้นอยู่กับหลาย ๆ โมดูลและจะให้ผลการทำงานที่ จำกัด หากคุณใช้เพียงโมดูลเดียวเท่านั้น
คุณสามารถค้นหาเครื่องกำเนิดไฟฟ้าที่รับผิดชอบได้ที่นี่;
การติดตั้ง / src / วีโอไอพี / ติดตั้ง / โมดูล / Di / แอป / งาน / การดำเนินงาน /
แต่ละคลาสมี foreach อยู่ในนั้นซึ่งจะช่วยให้คุณเพิ่ม if / else ด้วยการข้ามโมดูล / พา ธ บางอย่างต่อไป อาจเป็นประโยชน์ในการตรวจสอบเอกสารประกอบอาร์กิวเมนต์ของอินพุตคอนโซลของ Symfonyเกี่ยวกับวิธีป้อนอาร์กิวเมนต์ลงในคำสั่ง