-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplugin.php
More file actions
49 lines (42 loc) · 1.34 KB
/
Copy pathplugin.php
File metadata and controls
49 lines (42 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
namespace Rhymix\Plugins\Example;
use Rhymix\Framework\AbstractPlugin;
use Rhymix\Framework\Session;
use BaseObject;
use Context;
class Plugin extends AbstractPlugin
{
/**
* 플러그인 설정은 생성자를 통해서만 전달되므로, 필요시 멤버 변수에 저장해 둔다.
*/
public function __construct(object $config)
{
$this->config = $config;
/**
* 플러그인에서 사용할 이벤트 핸들러를 등록하면 해당 트리거 시점에 호출된다.
*/
$this->before('document.insertDocument', [$this, 'beforeInsertDocument']);
$this->after('comment.insertComment', [$this, 'afterInsertComment']);
/**
* 간단한 기능인 경우, 함수를 따로 만들지 않고 클로져를 사용해도 무방하다.
*/
$this->afterAction('member.procMemberLogin', function($obj) {
error_log('Member logged in: ' . Session::getMemberInfo()->user_id);
});
}
/**
* 위에서 등록한 글 작성 이벤트 핸들러
*/
public function beforeInsertDocument(object $obj)
{
error_log('Document posted: ' . $obj->document_srl . ' by ' . Context::get('logged_info')->nick_name);
}
/**
* 위에서 등록한 댓글 작성 이벤트 핸들러
*/
public function afterInsertComment(object $obj)
{
error_log('Comment posted: ' . $obj->comment_srl);
return new BaseObject(-1, 'sample plugin error');
}
}