2014-04-04 36 views
0

我想從smarty中的插件函數獲取當前模板文件/行,以進行分析/調試目的。Smarty獲取當前模板文件名/行

可以通過使用傳遞的$ smarty對象嗎?

像這樣

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

我能夠通過使用$smarty->source->filepath訪問的文件名,但是我無法找到任何行信息。

回答

1

我不認爲你可以在運行時從插件中訪問原始模板的屬性。但是您可以使用http://php.net/debug_backtrace函數來訪問來電者的信息。 (當然,這些信息將基於編譯後的文件,而不是原來的,但它總比沒有好。)

+0

是的,現在我明白,由於文件正在編譯,這實際上是不可能的。它將不得不在設置$ smarty-> current_line之前執行任何功能..我想我只是想省略線路信息。 – n00b