메뉴 건너뛰기

Interception?

서론

플러그인 개발자가 플러그인에서 필요한 기능을 구현하기 위해서는 XpressEngine 코어의 동작이 실행되는 시점에 플러그인이 끼어들어 코어의 행동을 바꾸거나 추가적인 행동을 할 수 있어야 합니다.

예를 들어, 사이트에 새로운 회원이 가입할 때, 가입한 회원에게 가입축하 메일을 보내는 기능을 플러그인으로 만들 수 있습니다. 코어가 회원가입을 처리할 때, 플러그인이 끼어들어 메일을 전송해야 합니다.

이러한 '끼어들기'를 일반적으로 hook 또는 event라고 칭합니다. XpressEngine1에서는 trigger라는 명칭을 사용했습니다. XpressEngine3에서는 '가로채다'는 의미의 interception이라는 명칭을 사용합니다.

XpressEngine3에서는 interception을 구현하기 위하여 AOP를 사용하였습니다. AOP는 Aspect Oriented Programming의 약어입니다.

기본 사용법

위에서의 예와 같이 XpressEngine에서 회원가입을 처리할 때, 메일 전송 코드가 실행되도록 하려면 intercept() 함수를 사용할 수 있습니다.

// 가입 축하 메일 보내기 등록
        intercept('Member@create', 'welcome_mail::send_mail', function($createMember, array $data) use ($mailer) {

        // 회원가입 코드를 실행
        $member = $createMember($data);

        // 메일 전송
        $mailer->sendWelcomeMail($member->email, $member->getDisplayName);

        // 회원가입 처리 결과 반환
        return $member;
        });
    

intercept 함수의 원형은 아래와 같습니다.

intercept($pointCut, $name, Closure $advice)

파라메터

  • 첫번째 파라메터 $pointCut 포인트컷(pointcut)은 '끼어들기'를 할 타겟 메소드를 칭합니다. 위의 예에서는 Member@create에 해당합니다. 사용가능한 포인트컷의 목록은 이 페이지 아래에 명시되어 있습니다.

  • 두번째 파라메터 $advisor AOP에서 '끼어들기'를 하는 주체를 어드바이저(Advisor)라고 합니다. 두번째 파라메터인 $name은 이 어드바이저의 '이름'입니다. 원하는 이름을 하나 지정하십시오. 단 이 이름은 다른 어드바이저와 중복되지 않아야 합니다. 해당 플러그인의 아이디(디렉토리명)를 이름의 접두사로 사용하십시오. 위의 예에서는 welcome_mail::send_mail에 해당하며, welcome_mail이 플러그인 아이디에 해당합니다. ::을 사용하여 접두사를 연결하십시오.

  • 세번째 파라메터 $advice 세번째 파라메터인 $advice는 '끼어들기'를 한 후 실행될 코드입니다. 클로저 형식으로 입력해야 합니다. 이 클로저 내부에서는 반드시 타겟 메소드(회원가입메소드)를 실행해주어야 합니다.(데코레이터 패턴) 타겟 메소드는 첫번째 파라메터($createMember)를 사용하여 호출할 수 있습니다. 대상코드를 호출하기 전이나 후에 원하는 코드를 추가하여 실행시킬 수 있습니다. 위의 예에서는 회원가입 처리를 한 후에 해당 회원에게 메일을 전송하는 코드가 추가되어 있습니다.

    이 클로저에 대해 자세히 설명하겠습니다.

    이 클로저의 첫번째 파라메터는 타겟 메소드입니다. 위의 예에서 $createMember가 이에 해당합니다. 클로저 내부에서 항상 이 대상 메소드를 호출해주어야 합니다. 또, 클로저는 타겟 메소드의 리턴값을 다시 리턴해야 합니다. 물론 리턴값을 변경해도 됩니다.

    두번째 파라메터부터는 대상 메소드가 호출될 때 받은 파라메터를 그대로 전달받습니다. 위의 예에서는 $data에 해당하며, 가입할 회원의 정보가 담겨있습니다. 물론 대상 메소드에 따라 파라메터의 수와 내용이 달라집니다.

    // 항상 대상메소드(첫번째 파라메터)를 호출해주어야 한다.
            $member = $createMember($data);
    
            // 항상 대상코드의 반환값을 다시 반환해야 한다.
            return $member;
        
Target Description Deprecated
PluginRegister - Xpressengine\Plugin
PluginRegister@addByEntity 주어진 플러그인에 포함된 component를 register에 등록한다.
PluginRegister@add register class 플러그인의 composer.json 을 통해 등록하지 않을 때 사용
PluginRegister@get get Registrable class name
XePlugin - Xpressengine\Plugin
XePlugin@setConfig config manager를 설정한다.
XePlugin@getPluginsDir plugin directory 경로를 반환한다.
XePlugin@setPluginsDir plugin directory 경로를 지정한다.
XePlugin@activatePlugin 주어진 플러그인을 활성화한다. 활성화된 플러그인 목록은 XE에 저장된다.
XePlugin@deactivatePlugin 주어진 플러그인을 비활성화한다.
XePlugin@updatePlugin 플러그인을 업데이트한다. 내부적으로는 단순히 플러그인을 다시 activate 시킨다.
XePlugin@deletePlugin 주어진 플러그인을 완전히 삭제한다. 삭제하기 전에 uninstall 작업을 먼저 실행한다.
XePlugin@bootPlugins 활성화 된 플러그인을 부팅한다. 이 메소드는 모든 요청에서 항상 호출되며, 활성화 된 모든 플러그인의 boot()메소드를 호출한다.
XePlugin@bootPlugin 플러그인을 부트한다.
XePlugin@getAllPlugins 등록된 플러그인의 목록을 반환한다.
XePlugin@getActivatedPlugins 활성화 된 플러그인의 목록을 반환한다.
XePlugin@getPlugin 주어진 pluginId에 해당하는 플러그인을 조회하여 반환한다. PluginEntity 형태로 반환한다.
XePlugin@isActivated 플러그인이 활성화되었는지 조사한다.
XeRegister - Xpressengine\Register
XeRegister@has Determine if the given configuration value exists.
XeRegister@get Get the specified configuration value.
XeRegister@set 주어진 key에 value를 지정한다. 이미 지정된 value가 있다면 덮어씌운다.
XeRegister@add 주어진 key에 value를 추가한다.
XeRegister@prepend 주어진 키에 해당하는 array의 제일 앞에 value를 추가한다.
XeRegister@push 주어진 키에 해당하는 array의 제일 뒤에 value를 추가한다.
XeRegister@all 등록된 모든 아이템을 조회한다.
XeRegister@offsetExists Determine if the given configuration option exists.
XeRegister@offsetGet Get a configuration option.
XeRegister@offsetSet Set a configuration option.
XeRegister@offsetUnset Unset a configuration option.
XeTheme - Xpressengine\Theme
XeTheme@setMobileResolver 현재 요청이 모바일 버전인지 조회할 때 사용되는 resolver를 지정한다.
XeTheme@getMobileResolver 현재 요청이 모바일 버전인지 조회할 때 사용되는 resolver를 조회한다.
XeTheme@selectTheme 현재 Request에서 사용될 테마를 지정한다. 이 메소드를 이용하여 테마를 지정하면, theme middleware에서 지정된 테마를 자동으로 출력한다.
XeTheme@selectSiteTheme 사이트 기본테마를 사용할 테마로 지정한다.
XeTheme@selectBlankTheme 아무 테마도 지정하지 않는다. 내부적으로는 blankTheme를 지정한다.
XeTheme@deselectTheme alias for selectBlankTheme()
XeTheme@getSelectedTheme 현재 Request에서 사용되는 테마를 반환한다. 반환되는 테마는 일반 테마일 수도 있고, 관리페이지용 테마일수도 있다.
XeTheme@getTheme 등록된 테마중 주어진 id를 가진 테마를 반환한다.
XeTheme@setSiteTheme 사이트 기본 테마를 지정한다. 사이트 기본 테마 정보는 데이터베이스에 저장 된다.
XeTheme@getSiteThemeId 사이트 기본 테마를 조회한다.
XeTheme@getAllTheme 모든 일반 테마 목록을 반환한다.
XeTheme@getAllThemeSupportingMobile getAllThemeSupportingMobile
XeTheme@getAllThemeSupportingDesktop getAllThemeSupportingDesktop
XeTheme@getAllSettingsTheme 모든 관리페이지 테마 목록을 반환한다.
XeTheme@getThemeConfig getThemeConfig
XeTheme@setThemeConfig setThemeConfig
XeDB - Xpressengine\Database
XeDB@connection get connector 실제 connection 을 만들지 않고 connector 에서 config 에 따라 master, slave 가 어떤 connection 이름을 사용할지 결정 후 connector 를 반환.
XeDB@getConfig get config
XeDB@getDefaultConnection Illuminate\Database\ConnectionResolverInterface
XeDB@setDefaultConnection Illuminate\Database\ConnectionResolverInterface
XeDB@__call \Illuminate\Database\DatabaseManager 와 동일한 기능을 제공.
XeConfig - Xpressengine\Config
XeConfig@add create new config
XeConfig@getVal returns config value
XeConfig@getPureVal returns config pure value
XeConfig@get returns config object by target name
XeConfig@getOrNew if not exists, create new entity object by target name
XeConfig@setVal set config value
XeConfig@set multiple set config values
XeConfig@put config change
XeConfig@modify modify config information
XeConfig@remove remove config
XeConfig@removeByName remove config by group name
XeConfig@children get next level configs
XeConfig@move Move entity hierarchy to new parent or root
Keygen - Xpressengine\Keygen
Keygen@generate unique key generator
Keygen@setMode mode setter
Keygen@getMode mode getter
Module - Xpressengine\Module
Module@getAll getAll
Module@getAllModuleInfo getAllModuleInfo
Module@getModuleClassName getModuleClassName
Module@getModuleObject getModuleObject
XeSite - Xpressengine\Site
XeSite@getCurrentSite getCurrentSite
XeSite@setCurrentSite setCurrentSite
XeSite@getCurrentSiteKey getCurrentSiteKey
XeSite@getSiteConfig getSiteConfig
XeSite@putSiteConfig putSiteConfig
XeSite@getDefaultMenuEntityId getDefaultMenuEntityId
XeSite@setDefaultMenuEntityId setDefaultMenuEntityId
XeSite@getHomeInstanceId getHomeInstanceId
XeSite@setHomeInstanceId setHomeInstanceId
XeSite@getSiteConfigValue getSiteConfigValue
XeSite@add add
XeSite@put put
XeSite@remove remove
XeSite@createModel Create new site model
XeSite@getModel Get site model
XeSite@setModel Set site model
DynamicField - Xpressengine\DynamicField
DynamicField@getConfigHandler get config handler
DynamicField@getRegisterHandler get register handler
DynamicField@connection get database connection
DynamicField@setConnection set database connection DatabaseProxy 에 의해서 connection 을 변경 한다.
DynamicField@create DynamicField 생성 * ConfigManager 를 이용해 설정 정보를 저장 * FieldTypeManager 로 Dynamic Field Table 생성
DynamicField@put DynamicField 설정 변경
DynamicField@drop DynamicField 제거
DynamicField@gets get dynamic fields by group name
DynamicField@get get dynamic field
DynamicField@has has dynamic field
DynamicField@getByConfig get type by dynamic field config entity
DynamicField@getType get dynamic field without skin instance
DynamicField@getRules get rules by dynamic field config entity
XeStorage - Xpressengine\Storage
XeStorage@upload file upload to storage
XeStorage@create create file
XeStorage@download file download from storage
XeStorage@remove remove file
XeStorage@bind set the target be have a file
XeStorage@has has
XeStorage@unBind set the target be not have a file
XeStorage@unBindAll unset all fileable's files to fileable
XeStorage@bytesByMime mime 별 파일 용량 정보 반환
XeStorage@countByMime mime 별 파일 갯수 반환
XeStorage@createModel create file model
XeStorage@getFilesystemHandler file system handler instance
XeStorage@getDistributor distributor instance
XeStorage@setDistributor set distributor instance
XeStorage@getTempFileCreator Returns the TempFileCreator instance
Auth - Xpressengine\User
Auth@check 현재 사용자의 로그인 여부를 체크한다.
Auth@user 현재 로그인한 사용자의 정보를 반환한다.
Auth@id 현재 로그인한 사용자의 id를 반환한다.
Auth@logout 현재 로그인한 사용자를 로그아웃 시킨다.
Auth@makeGuest Guest 회원 인스턴스를 생성하여 반환한다.
Auth@guest Determine if the current user is a guest.
Auth@once Log a user into the application without sessions or cookies.
Auth@validate Validate a user's credentials.
Auth@basic Attempt to authenticate using HTTP Basic Auth.
Auth@onceBasic Perform a stateless HTTP Basic login attempt.
Auth@attempt Attempt to authenticate a user using the given credentials.
Auth@attempting Register an authentication attempt event listener.
Auth@login Log a user into the application.
Auth@loginUsingId Log the given user ID into the application.
Auth@onceUsingId Log the given user ID into the application without sessions or cookies.
Auth@getCookieJar Get the cookie creator instance used by the guard.
Auth@setCookieJar Set the cookie creator instance used by the guard.
Auth@getDispatcher Get the event dispatcher instance.
Auth@setDispatcher Set the event dispatcher instance.
Auth@getSession Get the session store used by the guard.
Auth@getProvider Get the user provider used by the guard.
Auth@setProvider Set the user provider used by the guard.
Auth@getUser Return the currently cached user.
Auth@setUser Set the current user.
Auth@getRequest Get the current request instance.
Auth@setRequest Set the current request instance.
Auth@getLastAttempted Get the last user we attempted to authenticate.
Auth@getName Get a unique identifier for the auth session value.
Auth@getRecallerName Get the name of the cookie used to store the "recaller".
Auth@viaRemember Determine if the user was authenticated via "remember me" cookie.
XeUser - Xpressengine\User
XeUser@users User 회원 저장소를 반환한다.
XeUser@accounts UserAccount 회원계정 저장소를 반환한다.
XeUser@groups UserGroup 그룹 저장소를 반환한다.
XeUser@emails 회원 이메일 저장소를 반환한다.
XeUser@pendingEmails 회원 등록대기 이메일 저장소를 반환한다.
XeUser@create 주어진 정보로 신규회원을 등록한다. 회원정보에 대한 유효성검사도 병행하며, 회원관련 정보(그룹, 이메일, 등록대기 이메일, 계정)도 동시에 추가한다.
XeUser@update 회원정보를 업데이트 한다.
XeUser@leave 회원탈퇴 처리를 한다. 회원관련 정보(그룹, 이메일, 등록대기 이메일, 계정)도 동시에 삭제한다.
XeUser@validateForCreate 신규회원의 정보를 유효성 검사한다.
XeUser@validateDisplayName 표시이름(displayName)에 대한 유효성 검사를 한다. 표시이름이 형식검사와 중복검사를 병행한다.
XeUser@validatePassword 비밀번호에 대한 유효성 검사를 한다.
XeUser@validateForUpdate 회원의 정보를 업데이트할 때 필요한 유효성 검사를 한다.
XeUser@createGroup 새로운 그룹을 추가한다.
XeUser@updateGroup 그룹을 수정한다
XeUser@deleteGroup 그룹을 삭제한다
XeUser@createEmail 새로운 이메일을 생성한다
XeUser@updateEmail 이메일을 수정한다
XeUser@deleteEmail 이메일을 삭제한다
XeUser@createAccount 새로운 계정을 추가한다.
XeUser@updateAccount 계정을 수정한다
XeUser@deleteAccount 계정을 삭제한다
XeUser@usingEmailConfirm 이메일 인증의 사용 여부를 반환한다.
XeUser@getSettingsSections 개인 회원정보 설정 페이지의 섹션 목록을 반환한다.
XeUser@__call __call
XeMedia - Xpressengine\Media
XeMedia@getHandler Returns handler
XeMedia@getHandlerByFile Returns handler by storage File instance
XeMedia@getFileType 파일이 특정 미디어 타입과 매칭된다며 해당 타입 반환
XeMedia@getHandlerByMedia Returns handler by storage Media instance
XeMedia@make 파일을 타입에 맞는 미디어 객체로 재생성하여 반환
XeMedia@is 파일이 미디어 파일인지 확인
XeMedia@remove 미디어 삭제
XeMedia@metaRemove Meta data 삭제
XeMedia@createThumbnails 섬네일 생성
XeMedia@getDerives 동적으로 생성된 미디어 파일 반환
XeMedia@extend 미디어 핸들러를 추가, 변경하여 기능 확장
Captcha - Xpressengine\Captcha
Captcha@createGoogleDriver Create google reCAPTCHA driver
Captcha@getDefaultDriver Get the default captcha driver name.
Captcha@setDefaultDriver Set the default captcha driver name.
Captcha@driver Get a driver instance.
Captcha@extend Register a custom driver creator Closure.
Captcha@getDrivers Get all of the created "drivers".
Captcha@__call Dynamically call the default driver instance.
UIObejct - Xpressengine\UIObject
UIObejct@setAlias alias를 등록한다.
UIObejct@get 주어진 id로 등록된 UIObject를 반환한다.
UIObejct@getAll 등록된 모든 UIObject의 목록을 반환한다.
UIObejct@__call UIObject를 사용할 때, 간결한 인터페이스를 제공하기 위하여 이 메소드가 구현돼 있다.
UIObejct@create 주어진 타입의 AbstractUIObject 인스턴스를 생성하여 반환한다.
XeSkin - Xpressengine\Skin
XeSkin@setStore 스킨 지정 정보 저장소를 설정한다.
XeSkin@getStore 스킨 지정 정보 저장소를 반환한다.
XeSkin@setMobileResolver 현재 요청이 모바일 버전인지 조회할 때 사용되는 resolver를 지정한다.
XeSkin@getMobileResolver 현재 요청이 모바일 버전인지 조회할 때 사용되는 resolver를 조회한다.
XeSkin@get 주어진 id로 등록된 스킨을 반환한다.
XeSkin@getList 주어진 타겟에 등록된 스킨의 목록을 조회하여 반환한다.
XeSkin@getListSupportingMobile 주어진 타겟에 등록된 모바일 스킨의 목록을 조회하여 반환한다.
XeSkin@getListSupportingDesktop 주어진 타겟에 등록된 데스크탑 스킨의 목록을 조회하여 반환한다.
XeSkin@getAssigned 타겟이 지정돼 있는 스킨을 반환한다.
XeSkin@getAssignedSettings 타겟이 지정돼 있는 설정스킨을 반환한다.
XeSkin@assign 타겟에 주어진 스킨을 지정한다. 지정된 정보를 저장소에 저장되고, getAssigned() 메소드를 통해 조회할 수 있다.
XeSkin@setDefaultSkin 기본스킨으로 사용할 스킨을 지정한다.
XeSkin@setDefaultSettingsSkin 기본스킨으로 사용할 설정스킨을 지정한다.
XeSkin@mergeKey 스킨 지정정보를 저장소에 사용하는 키를 조합한다.
Trash - Xpressengine\Trash
Trash@register 휴지통 등록
Trash@gets 휴지통 반환
Trash@names 휴지통 이름 반환
Trash@clean 휴지통 비우기
XeFrontend - Xpressengine\Presenter
XeFrontend@title browser title을 입력한다.
XeFrontend@meta meta tag를 추가한다.
XeFrontend@icon browser icon을 추가한다.
XeFrontend@css css 파일을 추가한다.
XeFrontend@js js 파일을 추가한다.
XeFrontend@bodyClass body 태그에 class를 추가한다.
XeFrontend@html custom html tag를 추가한다.
XeFrontend@package custom package tag를 추가한다.
XeFrontend@rule validation rule을 추가한다.
XeFrontend@translation javascript에서 사용할 다국어를 추가한다.
XeFrontend@addTag add tag
XeFrontend@output output
XeFrontend@__call call magic method
Presenter - Xpressengine\Presenter
Presenter@getViewFactory get ViewFactory
Presenter@getRequest get request
Presenter@getInstanceConfig get menu config
Presenter@getSkinHandler get skin handler
Presenter@getThemeHandler get theme handler
Presenter@getManageHandler get settings handler DEPRECATED
Presenter@getSettingsHandler get settings handler
Presenter@register register renderer
Presenter@setSkinTargetId set skin class name
Presenter@setSettingsSkinTargetId set settings skin class name
Presenter@renderType render 방식 설정 $type [ 'all' => theme, skin 처리 'content' => content 만 render ] DEPRECATED
Presenter@htmlRenderPartial render 방식을 content 로 설정
Presenter@htmlRenderPopup render 방식을 content 로 설정
Presenter@share Add a piece of shared data to the environment.
Presenter@getShared get shared
Presenter@make 출력 처리할 renderer 반환 api 지원 안함
Presenter@makeApi API 지원하는 renderer 반환 html 지원 안하지 않고 api만 처리 할 경우 사용
Presenter@makeAll api, html 모두 지원하는 renderer 반환
Presenter@getId get id
Presenter@getData get shared data
Presenter@getSkinTargetId get skin target id
Presenter@getIsSettings get is settings support
Presenter@getRenderType get render type
HtmlRenderer - Xpressengine\Presenter
HtmlRenderer@setCommonHtmlWrapper set common html wrapper
HtmlRenderer@setPopupHtmlWrapper set popup html wrapper
HtmlRenderer@format Illuminate\Http\Request::initializeFormats() 에서 정의된 formats 에서 하나의 format
HtmlRenderer@getPresenter get presenter
HtmlRenderer@setData set presenter data to html renderer
HtmlRenderer@render Get the evaluated contents of the object.
HtmlRenderer@renderSkin render skin
HtmlRenderer@renderTheme render theme
JsonRenderer - Xpressengine\Presenter
JsonRenderer@format Illuminate\Http\Request::initializeFormats() 에서 정의된 formats 에서 하나의 format
JsonRenderer@toJson return json format string
JsonRenderer@render return json format string
XeSettings - Xpressengine\Settings
XeSettings@getPermissionList 관리권한 목록을 반환한다. $sortByTab이 true일 경우 tab 필드별로 group by하여 반환한다.
XeSettings@getSelectedMenu 현재 request에 해당하는 메뉴를 반환한다. 메뉴목록이 아직 생성되지 않았다면 메뉴 목록을 먼저 만든다.
XeSettings@getSettingsMenus 관리페이지 메뉴 목록을 반환한다.
XeSettings@setConfig 관리페이지 관련 설정을 저장한다.
XeSettings@getConfig 관리페이지 관련 설정을 조회한다.
DocumentInstanceManager - Xpressengine\Document
DocumentInstanceManager@add document instance 생성 ex) 게시판 생성 document instance 를 생성하면 instance id 로 config 를 생성하고 설정에 따라 division table 을 생성한다.
DocumentInstanceManager@getDivisionTableName get division table name
DocumentInstanceManager@put update instance config
DocumentInstanceManager@remove drop instance
Document - Xpressengine\Document
Document@getConfigHandler get config handler
Document@getInstanceManager get repository
Document@createInstance create document instance
Document@destroyInstance destroy document instance
Document@proxyOption get database proxy options
Document@add add document
Document@put update document
Document@addRevision add revision
Document@remove delete document
Document@getConfig get document config
Document@getDivisionTableName get division table name
Document@getModel Proxy, Division 관련 설정이 된 Document model 반환 Document 는 config 를 설정해야 정상 사용 가능함 document model 를 직접 반환하지 않음
Document@setModelConfig set model's config
Document@get get document
XeCategory - Xpressengine\Category
XeCategory@create Create new category
XeCategory@remove Remove category
XeCategory@createItem Create a new category item
XeCategory@putItem Modify item information
XeCategory@removeItem Remove single item or all descendant
XeCategory@moveTo Move to another parent CategoryItem
XeCategory@getModel The name of Category model class
XeCategory@setModel Set the name of Category model
XeCategory@newModel Create model instance
XeWidget - Xpressengine\Widget
XeWidget@getClassName 주어진 id로 등록된 Widget 반환한다.
XeWidget@create create
XeWidget@setUp setUp
XeWidget@getAll 등록된 모든 Widget 목록을 반환한다.
XeWidget@getGeneratedCode getGeneratedCode
Counter - Xpressengine\Counter
Counter@setGuest 비회원 지원 설정
Counter@getName get name
Counter@getOptions get options
Counter@hasByName has by name
Counter@has has log
Counter@add add log
Counter@remove remove log
Counter@get get log
Counter@getByName get log by name 옵션을 사용하는 Counter 에서 로그를 확인 할 때 등록된 옵션은 제외하고 확인하려고 할 수 있음
Counter@getPoint get point sum
Counter@getUsers get users
XeTag - Xpressengine\Tag
XeTag@set Set taggable's tags
XeTag@similar Search similar tags by given string
XeTag@similarWord Search similar words by given string
XeTag@createModel Create tag model
XeTag@getModel Returns tag model
XeTag@setModel Set tag model
ToggleMenu - Xpressengine\ToggleMenu
ToggleMenu@getItems 사용할 메뉴 아이템들을 반환
ToggleMenu@setActivates 사용할 아이템들을 설정에 저장
ToggleMenu@getActivated 활성화된 아이템 목록을 반환
ToggleMenu@getDeactivated 활성화 되지 않은 아이템 목록을 반환
ToggleMenu@all type 에 해당하는 모든 메뉴 아이템목록을 반환
XeTemporary - Xpressengine\Temporary
XeTemporary@get 임시저장 데이터들을 반환 함
XeTemporary@getById 아이디에 해당 하는 데이터 반환
XeTemporary@getAuto 자동저장으로 저장된 데이터 반환
XeTemporary@set 임시 데이터 저장
XeTemporary@put 임시저장 데이터 갱신
XeTemporary@remove 임시저장 데이터 삭제
XeTemporary@exists 키 값에 해당하는 임시저장 데이터 존재 유무 판별