ใน Magento 2 เมื่อคุณสร้างปลั๊กอิน "รอบ"
public function aroundRenderResult(
\Magento\Framework\Controller\ResultInterface $subject,
\Closure $proceed,
ResponseHttp $response
) {
//...
$proceed($response);
//...
}
คุณสามารถดำเนินการต่อไปปลั๊กอินรอบต่อไปปิดท้ายด้วยการเรียกวิธีการเดิมที่เกิดขึ้นจริงโดยการเรียก / อัญเชิญผ่านใน$proceed
วิธีการ นี่เป็นรูปแบบการออกแบบทั่วไปที่มักพบในการใช้มิดเดิลแวร์ PHP Frameworks
อย่างไรก็ตาม - มันนำเสนอความสับสนโดยไม่มีข้อมูลการใช้งาน เฉพาะ
หากนอกเหนือไปจาก
aroundPlugin
วัตถุ / คลาสยังมีการกำหนดbefore
หรือafter
ปลั๊กอินเมื่อใดพวกมันจะเริ่มสัมพันธ์กับสายโซ่ของปลั๊กอิน
คือวิธีทั้งหมดก่อนที่จะยิงก่อนที่จะมีวิธีการใด ๆ ไฟปลั๊กอิน? หรือก่อนที่ปลั๊กอินจะยิงก่อนที่ไฟสุดท้ายจะเกิดขึ้นจริงหรือไม่
ปัญหาเฉพาะฉันพยายามที่จะติดตามลงคือผมไม่สามารถดูเหมือนจะได้รับปลั๊กอินที่ติดอยู่กับวิธีการจัดส่งที่ควบคุมวีโอไอพี 2 หน้าเมื่อวีโอไอพีในโหมดแคชเต็มหน้า แคชเต็มหน้าดำเนินการโดยปลั๊กอินรอบ ๆ ที่ไม่ได้$proceed($response)
โทร ฉันได้ลองขุดลงในโค้ดบางส่วนรอบ ๆ ปลั๊กอินเหล่านี้และพบว่าระบบนั้นยากที่จะให้เหตุผลโดยไม่ทราบว่าปลั๊กอินนั้นทำงานอย่างไร
ie - คำอธิบายในหน้าเอกสาร devจะปรากฏขึ้นในอินสแตนซ์ที่เฉพาะเจาะจงนี้อันใดอันหนึ่งที่ไม่ถูกต้อง มันไม่ชัดเจนหากเอกสารผิดหรือเป็นข้อผิดพลาดที่เพิ่งเปิดตัวหากเป็นกรณีขอบหรือหากการกำหนดค่าปลั๊กอินของฉันไม่ถูกต้อง
ไม่มีใครรู้โดยการสังเกตโดยตรงหรือโดยความรู้ทางวัฒนธรรมการจัดลำดับความสำคัญนี้ควรจะทำงานอย่างไร
\closure $proceed
กับ\callable $proceed
ในปลั๊กอินหรือไม่? เอกสารอย่างเป็นทางการเพียงกล่าวและไม่เคยสัมผัสกับ\callable
\closure