2014-04-04 1 views
0

프로파일 링/디버깅 목적으로 smarty의 플러그인 함수에서 현재 템플릿 파일/라인을 얻고 싶습니다.Smarty가 현재 템플릿 파일 이름/라인을 얻습니다.

전달 된 $ smarty 개체를 사용하여 수행 할 수 있습니까? 내가 $smarty->source->filepath을 사용하여 파일 이름에 액세스 할 수 있어요이

function __smarty_add_javascript($params, $smarty){ 
     Profiler::console('Add javascript @[FILE]#[LINE]'); 
    Controller_Template_Base::getInstance()->javascripts[] = array_pop($params); 
} 

같은

무엇인가 그러나 나는 어떤 라인 정보를 찾을 수 couldnt한다.

답변

1

런타임에 플러그인에서 원본 템플릿의 속성에 액세스 할 수 있다고 생각하지 않습니다. 하지만 http://php.net/debug_backtrace 함수를 사용하여 발신자 정보에 액세스 할 수 있습니다. (물론이 정보는 원본이 아닌 컴파일 된 파일을 기반으로합니다. 그러나 아무것도 아닌 것보다 낫습니다.)

+0

네, 이제 파일 컴파일 때문에 사실상 불가능하다는 것을 이해했습니다. 어떤 함수를 실행하기 전에 $ smarty-> current_line을 설정해야 할 것입니다. 나는 라인 정보가 아쉽다고 생각합니다. – n00b

관련 문제