Câu trả lời của tôi liên quan đến WordPress được viết bằng PHP, nhưng đây là một cơ chế phát triển chung vì vậy nó không thực sự quan trọng, mặc dù thực tế là bạn đặt 'python' trong tiêu đề câu hỏi của bạn.
Một ví dụ điển hình về việc sử dụng hook, ngẫu nhiên trong phát triển web, là hook của WordPress .
Chúng được đặt tên một cách thích hợp ở chỗ chúng cho phép một cách để 'móc vào' một số điểm nhất định của việc thực hiện chương trình.
Vì vậy, ví dụ, wp_head là một 'hành động' được phát ra khi một chủ đề WordPress được hiển thị và đó là phần mà nó hiển thị phần nằm trong các <head>
thẻ. Giả sử bạn muốn viết một plugin yêu cầu một biểu định kiểu, tập lệnh hoặc thứ gì đó thường đi trong các thẻ đó. Bạn có thể 'nối vào' hành động này bằng cách xác định một chức năng sẽ được gọi khi hành động này được phát ra. Cái gì đó như:
add_action('wp_head', 'your_function');
your_function()
có thể là một cái gì đó đơn giản như:
function your_function() {
echo '<link rel="stylesheet" type="text/css" href="lol.css" />';
}
Bây giờ, khi WordPress phát ra hành động này bằng cách thực hiện một cái gì đó như thế do_action('wp_head');
, nó sẽ thấy hành động đó your_function()
được 'nối vào' , vì vậy nó sẽ gọi hàm đó ( và chuyển bất kỳ đối số nào nếu có bất kỳ, như được định nghĩa trong tài liệu cho bất kỳ hook cụ thể nào ).
Câu chuyện dài: Nó cho phép bạn thêm chức năng bổ sung tại các điểm cụ thể của việc thực hiện chương trình bằng cách 'nối vào' các điểm đó, trong hầu hết các trường hợp bằng cách gán hàm gọi lại.