要查找在 Laravel 应用程序中定义函数的位置,我正在尝试执行以下操作:
内部App\Http\Controllers命名空间:
$reflFunc = new ReflectionFunction('function_name');
Run Code Online (Sandbox Code Playgroud)
但是得到一个错误:
PHP 错误:在第 169 行的 /var/www/html/s/source/app/Http/Controllers/HomeController.php 中找不到“App\Http\Controllers\ReflectionFunction”类
我什至尝试使用全局命名空间:
ReflectionFunction 类不应该位于 laravel 试图找到它的地方,但是请建议我可能遗漏了什么?
您正在类内部运行此代码,而该类本身就在namespace App\Http\Controllers. 因此,您应该明确定义ReflectionFunction该类属于全局命名空间:
$reflFunc = new \ReflectionFunction('function_name');
print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
Run Code Online (Sandbox Code Playgroud)
注意\ReflectionFunction而不是简单ReflectionFunction