ฉันพบคำนี้ในบทความการเขียนโปรแกรมต่าง ๆ อย่างไรก็ตามฉันไม่เข้าใจว่ามันคืออะไรและจะใช้งานอย่างไร ดังนั้นฉันแค่อยากรู้ว่าแนวคิดของ hooks คืออะไร; ถ้ามีใครสามารถเชื่อมโยงฉันกับตัวอย่างโดยเฉพาะอย่างยิ่งในบริบทของการพัฒนาเว็บมันจะดีมาก
ฉันพบคำนี้ในบทความการเขียนโปรแกรมต่าง ๆ อย่างไรก็ตามฉันไม่เข้าใจว่ามันคืออะไรและจะใช้งานอย่างไร ดังนั้นฉันแค่อยากรู้ว่าแนวคิดของ hooks คืออะไร; ถ้ามีใครสามารถเชื่อมโยงฉันกับตัวอย่างโดยเฉพาะอย่างยิ่งในบริบทของการพัฒนาเว็บมันจะดีมาก
คำตอบ:
คำตอบของฉันเกี่ยวข้องกับ WordPress ซึ่งเขียนด้วย PHP แต่นี่เป็นกลไกการพัฒนาทั่วไปดังนั้นจึงไม่ควรทำเรื่องสำคัญแม้ว่าคุณจะใส่ 'python' ในชื่อคำถามของคุณก็ตาม
หนึ่งตัวอย่างที่ดีของการใช้งานของตะขอบังเอิญในการพัฒนาเว็บเป็นWordPress' ตะขอ
พวกเขามีชื่ออย่างเหมาะสมในการที่พวกเขาอนุญาตให้วิธีการ 'ขอเป็น' บางจุดของการดำเนินการของโปรแกรม
ตัวอย่างเช่นwp_headคือ 'การกระทำ' ที่ถูกปล่อยออกมาเมื่อธีม WordPress ถูกแสดงผลและเป็นส่วนหนึ่งที่แสดงส่วนที่อยู่ภายใน<head>
แท็ก สมมติว่าคุณต้องการเขียนปลั๊กอินที่ต้องการสไตล์ชีทสคริปต์หรือสิ่งที่ปกติจะอยู่ในแท็กเหล่านั้น คุณสามารถ 'ขอ' การกระทำนี้ได้โดยการกำหนดฟังก์ชั่นที่จะเรียกเมื่อการกระทำนี้ถูกปล่อยออกมา สิ่งที่ต้องการ:
add_action('wp_head', 'your_function');
your_function()
อาจเป็นอะไรที่ง่ายเหมือน:
function your_function() {
echo '<link rel="stylesheet" type="text/css" href="lol.css" />';
}
ตอนนี้เมื่อ WordPress ปล่อยการกระทำนี้โดยทำสิ่งใดสิ่งdo_action('wp_head');
หนึ่งมันจะเห็นว่าyour_function()
ถูก'ติด' เข้ากับการกระทำนั้นดังนั้นมันจะเรียกใช้ฟังก์ชันนั้น ( และส่งต่อข้อโต้แย้งใด ๆ )
เรื่องสั้นแบบสั้น: ช่วยให้คุณเพิ่มฟังก์ชันการทำงานเพิ่มเติม ณ จุดเฉพาะของการใช้งานโปรแกรมโดย 'เชื่อมต่อ' จุดเหล่านั้นในกรณีส่วนใหญ่โดยการกำหนดฟังก์ชันการเรียกกลับ
ทั้งนี้ขึ้นอยู่กับพื้นหลังของบุคคลที่ถามบางครั้งคำตอบสำหรับคำถามนี้อาจเป็นเรื่องง่ายเหมือน hooks มักเป็นอีกคำหนึ่งสำหรับตัวจัดการเหตุการณ์ซึ่ง Blaenk ให้คำอธิบายที่ดีเยี่ยม
นอกจากนี้ยังมีการใช้วลีนี้ว่าเมื่อคุณฉีดเหตุการณ์หรือรหัสเข้าสู่กระบวนการที่เป็นอย่างอื่นไม่ได้มีเหตุการณ์เช่นไฝตัวอย่างเช่น