1
A
回答
5
看起來相關的ReflectionFunction
類有東西(getFileName
,getStartLine
等)。
(未測試)
1
debug_backtrace()
會給背面與正在發出的所有呼叫的陣列,並且還的功能/方法的定義。反射類將爲您提供該函數的定義。
例如我用這個舊項目內登錄deprectated功能:
function logDeprecated() {
$trail = debug_backtrace();
if ($trail[1]['type']) {
$function = new ReflectionMethod($trail[1]['class'], $trail[1]['function']);
} else {
$function = new ReflectionFunction($trail[1]['function']);
}
$errorMsg = 'Function ' . $trail[1]['function'];
if ($trail[1]['class']) {
$errorMsg .= ' of class ' . $trail[1]['class'];
}
$errorMsg .= ' is deprecated (called from ' . $trail[1]['file'] . '#' . $trail[1]['line'] . ', defined in ' . $function->getFileName() . '#' . $function->getStartLine() . ')';
return $errorMsg;
}
+0
也許我沒有把它弄好,但是它實際上告訴你任何關於trace元素被定義的位置而不是被調用的地方嗎? – 2012-03-10 09:57:39
+0
@ ashy_32bit:你說得對,它並沒有真正顯示它的定義。我已經添加了一個示例,說明如何使用反射記錄不推薦使用的函數 – konsolenfreddy 2012-03-10 10:03:34
1
ReflectionMethod::getStartLine()
ReflectionMethod::getFileName()
ReflectionFunction::getStartLine()
ReflectionFunction::getFileName()
0
也許它不是最好的解決辦法,但如果你不會找到點兒什麼,你可以找到使用grep
命令,如果你使用的是Linux的功能定位。
exec('grep -irn "yourFunctionName" ./library', $response);
foreach ($response as $file) {
list($filename, $line) = explode(":", $file);
}
相關問題
- 1. 哪裏定義了Windows API函數?
- 2. Rails:哪裏定義了「params」?
- 3. 哪裏定義了類「section」?
- 4. 哪裏定義了表'test.sphinx_test_file'?
- 5. 哪裏定義了autoconf宏?
- 6. 哪裏定義了tf.nn.l2_loss?
- 7. d:DataContext d:DesignWidth ...定義了哪裏?
- 8. 定義了c-icap的ci_thread_mutex_init()函數在哪裏?
- 9. 在android源代碼中定義了以下函數在哪裏?
- 10. Dietlibc在哪裏定義函數_start?
- 11. 函數err_sys()在哪裏定義?
- 12. VB.NET的MsgBox函數在哪裏定義?
- 13. tell()函數在哪裏定義?
- 14. 哪裏可以找到PHP函數定義
- 15. 在哪裏定義了python變量
- 16. 在哪裏定義了arguments屬性?
- 17. 哪裏定義了字體系列?
- 18. 定義了Backbone.Model.extend方法在哪裏?
- 19. 遞歸函數:我在哪裏錯了?
- 20. php-src中的「zend_execute」函數在哪裏?
- 21. 這個Javascript事件處理函數參數在哪裏定義?
- 22. 哪裏定義了Rust(例如.float)的數據類型?
- 23. 哪裏encodeAsSHA()函數
- 24. 哪裏錯了?
- 25. 哪裏函數等於一定值
- 26. 自定義函數的屬性在哪裏?
- 27. Linux內核中定義的trace_netif_rx_entry函數在哪裏?
- 28. clojurescript中定義的.strobj函數在哪裏?
- 29. 構造函數String(int,int,char [])在哪裏定義?
- 30. Bigcommerce Stencil堆棧中定義的這些scss函數在哪裏?
你是指什麼意思*哪裏*?你是指在哪個文件或哪個類別或什麼? – Sarfraz 2012-03-10 09:51:00
@Sarfraz我正在尋找文件:行,但你如何給一個方法的名稱,並找出有這種方法的類? – 2012-03-10 09:59:53
@ ashy_32bit:請用所需信息更新問題。一般而言,通過更新您的帖子來回應澄清請求,而不是回覆評論。首先,如果沒有閱讀評論,一個問題應該是可以理解的。另一方面,SO是一個質量保證和網站,而不是一個論壇,評論意圖不適合(也不適合)討論。 – outis 2012-03-10 15:17:02