查找Laravel应用程序中定义函数的位置 我正在尝试这样做:
在App\Http\Controllers
内部命名空间:
$reflFunc = new ReflectionFunction('function_name');
但是得到一个错误:
PHP错误:类'App \ Http \ Controllers \ ReflectionFunction'没有 在发现 /var/www/html/s/source/app/Http/Controllers/HomeController.php 在第169行
我甚至尝试使用全局命名空间:
ReflectionFunction Class不应该位于laravel试图找到它的位置, 但请说明我可能遗失的是什么?
答案 0 :(得分:4)
您在类中运行此代码,它本身位于dir1.tests.myTest
内。所以你应该明确定义namespace App\Http\Controllers
类属于全局命名空间:
ReflectionFunction
请注意$reflFunc = new \ReflectionFunction('function_name');
print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
而不是简单的\ReflectionFunction
答案 1 :(得分:1)
您似乎忘记了班级中的use ReflectionFunction;
。或者更改为(注意反斜杠)$reflFunc = new \ReflectionFunction('function_name');
答案 2 :(得分:1)
ReflectionFunction位于全局命名空间中。
请参阅:http://php.net/manual/en/class.reflectionfunction.php
在全局命名空间写入
中使用类构造函数$ reflFunc = new \ ReflectionFunction('function_name');