typecho 플러그인 작성 튜토리얼 (4): 플러그인 마운트

2000 단어
드디어 설정 정보를 저장할 수 있으면 플러그인 마운트 기능을 작성할 수 있습니다.
우선 우리는 시스템이 우리를 위해 각 관건적인 부분에 플러그인 포인트를 미리 남겨 두었다는 것을 알아야 한다. 시스템이 플러그인 포인트에 실행될 때 플러그인이 이 포인트에 걸려 있는지 확인하고 플러그인의 논리를 실행한다!
플러그인의 작업은 적당한 플러그인 포인트를 찾아서 걸고 자신의 논리를 실행하는 것이다.
플러그인 포인트, 플러그인 갈고리, 플러그인 인터페이스...고등학교 때부터 개념이었어요.
공식 플러그인 인터페이스 및 기능 목록
우리 플러그인이 실행해야 할 논리가 여기 있습니다.WidgetContents_Post_Edit 클래스의finishPublish 방법
파일 경로 var/Widget/Contents/Post/Edit.php:736에서 볼 수 있듯이 인터페이스는 우리에게 두 개의 매개 변수를 전달했다. 하나는 발표된 내용이고 다른 하나는 클래스 자체이다.클래스 자체가 있으면 우리는 플러그인에서 그의 공공 방법을 마음대로 호출할 수 있다.
 
  
    //
    $this->pluginHandle()->finishPublish($contents, $this);

다음 코드가 언급될 페이지 발표 인터페이스가 하나 더 있습니다.
마운트 방법
코드는 아래와 같이 생략되어 있다.
 
  

class BaiduSubmitTest_Plugin implements Typecho_Plugin_Interface
{

    public static function activate(){
        //
        Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
        Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
        return ' , ';
    }
...
...
    public static function render($contents, $class){
        //do something
    }
}


플러그인이 활성화되면 시스템에서 플러그인 클래스를BaiduSubmitTestPlugin의render 방법은finishPublish의 인터페이스에 귀속됩니다!finishPublish는 두 개의 매개 변수를 전달하기 때문에render 방법도 두 개의 매개 변수를 받아들여야 한다.
이 때 플러그인이 정상적으로 활성화되면, 우리가 어떤 글을 발표한 후, 시스템은BaiduSubmitTest 를 자동으로 호출합니다.Plugin:render () 메서드입니다.
원본 코드를 자세히 살펴보면 이 인터페이스에 되돌아오는 값이 없는 것을 발견할 수 있습니다. 되돌아오는 값이 있으면 어떻게 합니까?
이 상황은 비교적 복잡하니, 고 씨는 먼저 구덩이를 남겨 두어라.
왜 렌더 방법이라고 해요?
고씨는 Hello World에서 복사하여 붙여 왔는데 줄곧 이름을 바꾸지 않았다.
다음
마운트 포인트가 끝났습니다. 다음 단계는 우리의 핵심 논리 코드를 실행하는 것입니다.
라오고가 다음 편으로 남겨 두자!

좋은 웹페이지 즐겨찾기