PRD-개발이야기

GNUBoard [HOOK] 먹는건가요?

본문

[HOOK] 먹는건가요?

 

이전 등록한글을 읽어봤더니...

뭔가 중요한게 빠져 있더군요

 

HOOK을 다들 알고 계실거라고 생각했습니다.

 

이게 왜 때문이냐하면 저같은 무지랭이도 알고 있었기 때문이죠 -_-;;;

(이거 순전히 예전 워드프레스 개발 경험이 있기 때문입니다.)

 

자 그럼 HOOK은 뭐하는 것일까요?

1935446354_1557462527.2651.jpg

 

말은 근사하게 했지만 솔직하게 저도 잘 알진 못합니다. -_-;;

 

자 일단 이 훅이란걸 설명하려면 절차적 프로그래밍... 이라는

생전 듣도보도 못한 말을 이해해야 합니다. 이게 뭐냐하면 

아마 제 나이때분들이라면 컴을 처음 접할때 basic이라는것을 직접적이나

간접적으로 접해보셨을 수 있을겁니다.

 

이 Basic이란넘은 프로그램의 행을 널뛰기 뛰듯 뛰어갈 수 있습니다.

정확한 명령어 인지는 기억은 없지만 

goto_line('행수') 뭐 이런게 있었던거 같습니다. 이게 뭐냐면 

한참 순차적으로 프로그램을 읽다가 라인을 갈아타서 그쪽먼저 실행하다 다시 돌아옵니다.

이게 php 에서는 불가능하고   (된답니다 - 3-) 그래서 소스 중간을 훅하고 끼워넣는 겁니다.

 

 

자 그럼 셈플을 하나 보고 가시겠습니다.

 

add_event('pr_hooks', 'pr_ex', 10, 0);
function pr_ex(){
    global $pr_test;
    $pr_test = 'test';
}

$pr_test = '테스트';
run_event('pr_hooks');
echo $pr_test;

 

자 이런 상황에서 해당 add_event()의 함수를 extend쪽에서 실행한다고 가정해 보겠습니다.

아 또 extend가 들먹여 지네요 -_- 이거 그냥 incluide라고 생각하세요

 

자 그럼 해당 소스를 실행하다 $pr_test라는 변수를 선언합니다.

그리고 훅을 달죠 그리고 해당 $pr_test를 호출해 주고

add_event()를 이용해 해당 변수를 초기화 해주었습니다.

 

이해가 좀 되시나요? 어떻게 활용을 해야하는지???

 

자 그럼 해당 게시판소스에서 검색을 해야한다고 생각해보죠

냑에서 제공하는 여분필드외에 커스텀으로 뭔가 개발을 했고 그 필드를 검색해야 한다고 상정해봅니다

그럼 $where절 정도의 변수에 핻아 검색조건이 들어갈테고 이건 스킨으로 해결이 안됩니다.

그럼 원본소스를 건들이거나 아예 다시 만들거나 해야하는데 이때 HOOK을 사용하면 됩니다.

물론 "냑"에서 개발을 먼저 그렇게 해줘야 합니다 -_-;;; 훅을 넣어줘야 하는거죠

 

그래서 $where절을 훅으로 변경해주면 원본 소스를 수정 할 필요가 없어지는겁니다.

 

뭔가 장황하게 떠들긴 하는데 이해가 되시려나 모르겟습니다.

일명 개구리 올챙이적 생각 못한다고

이게 한번 이해를 해버리면 그냥 당연한게 되어 버려서 설명이 힘들더군요

 

뭔가 이해가 안되신다면 댓글 달아주시면 다른 예제를 생각해 보겠습니다.

 

댓글목록

등록된 댓글이 없습니다.

전체 10건 1 페이지
게시물 검색
Copyright © 소유하신 도메인. All rights reserved.
test page