현재 요청의 module, act 를 정확히 가져올 수 있는 API가 있을까요?
요청된 module, act 말고, 실제로 실행된 것이요.
예를 들어 사이트 첫 페이지나, 게시판 목록 같은 경우...
module, mid 정도는 얻을 수 있지만 dispBoardContent, dispPageIndex(였나) 이런건 확인이 안 되네요.
Context::all() 등으로 다 찍어봐도 찾을 수가 없네요.
요청된 module, act 말고 실제로 실행된 정보를 얻고 싶습니다.
ModuleHandler 클래스에 act 같은 멤버변수가 있긴한데 저 인스턴스를 가져올 수도 없는 것같네요.
ModuleHandler::procModule() 에서 최종적으로 act가 확정되는 것같네요
if(!$this->act)
{
$this->act = $xml_info->default_index_act;
}
module 도 procModule 안에서 최종 확정되는 것같고요.
근데 이걸 어떻게 접근해서 가져올까요?
라이믹스 최신 버전 기준으로 Context::getCurrentRequest() 하면 R\F\Request 클래스의 인스턴스가 반환되고, 여기에 module, mid, act 및 라우팅 정보가 담겨 있습니다. 모듈 클래스나 템플릿에서는 $this->request 도 동일한 내용입니다. 현재 요청의 속성을 확인하는 가장 오피셜한 방법입니다.
단, 각 모듈의 인덱스 페이지인 경우에는 원래 act가 없습니다. act가 없으면 모듈 정보를 뒤져서 dispBoardContent, dispPageIndex 등 해당 모듈의 인덱스 act를 대신 실행하는 것입니다. 따라서 코어에서도 "현재 act가 없다!" 라고 하지, "현재 act는 dispPageIndex이다!" 라고 인식하지는 않습니다. ModuleModel에서 해당 모듈 정보를 불러와서 인덱스 act가 무엇인지 찾아야 하지요.
물론 이 경우에도 해당 액션을 호출하기 직전 $this->act에 메소드명이 셋팅되므로, 그 후에 $current_module_info->act를 찍어보면 값이 들어가 있을 가능성이 높습니다.