質問
私はさまざまなプログラミング記事でこの用語のフックに出くわし続けています。しかし、私はそれらが何であるかを理解していません、そしてそれらをどのように使用できるか。だから私はただフックの概念とは何かを知りたかっただけです。誰かが私をいくつかの例にリンクできれば、特にWeb開発の文脈では、それは素晴らしいことです。
解決
私の答えはPHPで書かれているWordPressに関係していますが、これは一般的な開発メカニックであるため、質問のタイトルに「Python」を入れたという事実にもかかわらず、それは本当に重要ではありません。
偶然にもウェブ開発において、フックの使用の良い例の1つは、 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()
だった 「夢中になっている」 そのアクションなので、その関数を呼び出します(特定のフックのドキュメントで定義されているように、それが必要な場合はそれに渡します).
短いストーリーの短い:ほとんどの場合、機能コールバックを割り当てることにより、これらのポイントに「フック」することにより、プログラムの実行の特定のポイントで追加の機能を追加できます。
他のヒント
この質問に対する答えは、通常、フックがイベントハンドラーの別の言葉であると同じくらい簡単にすることができる場合がある人の背景に応じて、Blaenkが優れた説明をしました。
また、そうでなければイベントがないプロセスにイベントまたはコードを注入するときのこのフレーズの用途もあります ほくろ 例えば。