typecho 플러그인 작성 튜토리얼 (4): 플러그인 마운트
우선 우리는 시스템이 우리를 위해 각 관건적인 부분에 플러그인 포인트를 미리 남겨 두었다는 것을 알아야 한다. 시스템이 플러그인 포인트에 실행될 때 플러그인이 이 포인트에 걸려 있는지 확인하고 플러그인의 논리를 실행한다!
플러그인의 작업은 적당한 플러그인 포인트를 찾아서 걸고 자신의 논리를 실행하는 것이다.
플러그인 포인트, 플러그인 갈고리, 플러그인 인터페이스...고등학교 때부터 개념이었어요.
공식 플러그인 인터페이스 및 기능 목록
우리 플러그인이 실행해야 할 논리가 여기 있습니다.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에서 복사하여 붙여 왔는데 줄곧 이름을 바꾸지 않았다.
다음
마운트 포인트가 끝났습니다. 다음 단계는 우리의 핵심 논리 코드를 실행하는 것입니다.
라오고가 다음 편으로 남겨 두자!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.