후크 란 무엇입니까? [닫은]


15

다양한 프로그래밍 기사 에서이 용어를 계속 사용합니다. 그러나 나는 그들이 무엇이며 어떻게 사용될 수 있는지 이해하지 못합니다. 그래서 저는 훅 개념이 무엇인지 알고 싶었습니다. 누군가가 특히 웹 개발의 맥락에서 나를 몇 가지 예에 연결할 수 있다면 좋을 것입니다.


후크 메소드는 서브 클래스로 대체 될 수있는 추상 클래스의 구체적인 메소드이지만 추상 클래스에서 기본 동작을 갖습니다.
gal007

답변:


18

내 대답은 PHP로 작성된 WordPress에 관한 것이지만 이것은 일반적인 개발 방식이므로 질문 제목에 'python'을 넣었음에도 불구하고 실제로 중요하지 않습니다.

우연히 웹 개발에서 후크를 사용하는 좋은 예는 WordPress 'hooks 입니다.

그것들은 프로그램 실행의 특정 지점에 '후킹'하는 방법을 허용한다는 점에서 적절하게 명명되었습니다.

예를 들어, wp_head 는 워드 프레스 테마가 렌더링 될 때 생성되는 '액션'이며 <head>태그 내에있는 부분을 렌더링하는 부분에 있습니다. 추가 스타일 시트, 스크립트 또는 일반적으로 해당 태그에 포함되는 것을 요구하는 플러그인을 작성한다고 가정하십시오. 이 액션이 생성 될 때 호출 할 함수를 정의하여이 액션에 '후크'할 수 있습니다. 다음과 같은 것 :

add_action('wp_head', 'your_function');

your_function() 다음과 같이 간단 할 수 있습니다.

function your_function() {
    echo '<link rel="stylesheet" type="text/css" href="lol.css" />';
}

워드 프레스가 같은 것을 수행하여이 작업을 방출 할 때 지금 do_action('wp_head');, 그이 볼 수 your_function()있었다 '후크로' 는 그 함수를 호출 (있도록, 그 행동 이 어떤 걸리는 경우 특정 후크에 대한 문서에 정의 된대로, 그리고 어떤 인수를 전달 ).

간단히 말해 : 대부분의 경우 함수 콜백을 할당하여 해당 지점을 '후킹'함으로써 프로그램 실행의 특정 지점에서 추가 기능을 추가 할 수 있습니다.


2

때때로 질문하는 사람의 배경에 따라,이 질문에 대한 대답은 후크가 일반적으로 이벤트 핸들러를위한 또 다른 단어 인 것처럼 간단 할 수 있습니다. Blaenk은 훌륭한 설명을했습니다.

예를 들어 두더지 와 같은 이벤트가없는 프로세스에 이벤트 또는 코드를 삽입 할 때 사용되는이 문구도 사용됩니다 .


고마워 빌, 두더지는 완전히 외계인 .NET 개념처럼 보입니다. 파이썬이나 PHP 또는 더 일반적인 것을 알려 주시겠습니까?
Rasmus

불행히도 나는 전문 지식을 주장하기에 충분히 두 가지를 사용하지는 않지만 올바르게 읽는다면 stackoverflow.com/questions/156230/… 과 비슷한 아이디어라고 생각하지만 두더지가 컴파일 된 어셈블리를 연결할 수 있다고 생각합니다. 미니 포트 드라이버는 후크 문구가 가끔 사용되는 또 다른 장소입니다. 필자의 요점은 "후크"용어가 때때로 다른 방식으로 사용될 수 있다는 것입니다.
Bill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.