애드온 트리거 사용시
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.2 |
https://xetown.com/tips/1373435
function triggerBeforeInsertDocument($args)
{
// Trigger Code...
return $args;
}
실행되어야 할코드 뒤에
return $args;
이게 필요한 이유가 궁금합니다.
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.2 |
https://xetown.com/tips/1373435
function triggerBeforeInsertDocument($args)
{
// Trigger Code...
return $args;
}
실행되어야 할코드 뒤에
return $args;
이게 필요한 이유가 궁금합니다.
댓글 4
return $args 명령이 존재하는것 같습니다 (맞나요? ㅠㅠ)
트리거의 반환값이 중요한 경우는 오류를 뿜기 위해 BaseObject(-1, 에러메시지)를 반환할 때뿐입니다. 그 밖의 반환값은 모두 무시됩니다. 메모리 낭비 그 이상도 이하도 아닙니다.
moduleObject.proc 같은 곳에서는 BaseObject를 상속받은 ModuleObject가 넘어오기 때문에, 받았던 변수에 에러메시지를 추가하여 다시 반환할 경우 BaseObject로 인식할 수도 있습니다. 그러나 그냥 BaseObject를 만들어서 반환하면 될 것을 굳이 그렇게 복잡하게 할 필요도 없고, 아무튼 이런 특수한 경우를 제외하면 트리거의 반환값은 완전 무쓸모입니다. (심지어 대부분의 after 시점에서는 트리거가 에러를 반환하더라도 무시하고 계속 진행합니다. 트리거의 반환값을 코어에서 얼마나 철저하게 투명인간 취급하는지 알 수 있겠죠?)
트리거에서 $args를 조작하여 글 내용을 변경하는 등의 작업을 할 수 있겠지만, 이 때도 $args를 반환할 필요는 없습니다. 모든 오브젝트는 참조로 넘어오기 때문에 그냥 $args를 조작하기만 하면 원본에 반영됩니다. $args를 반환하는 코드를 제거하더라도 똑같이 작동할 것입니다.