PHP 7.1:从命名空间获取文件路径

Jos*_*uce 3 php php-7.1

我有一个项目.我需要在包中获取文件的内容.我可以用艰难的方式做到:

file_get_contents('../../vendor/{vendor}/{package}/src/
    {directory}/{sub-directory}/class.php');
Run Code Online (Sandbox Code Playgroud)

或者,我可以做到"简单的方式",我很确定这是不可能的.

namespace MyVendor\MyProject;

use TheirVendor\TheirPackage\TheirClass;

class MyObject
{
    public function myFunction()
    {
        return file_get_contents(TheirClass);
    }
}
Run Code Online (Sandbox Code Playgroud)

这可能(或类似的东西)可能吗?

Mar*_*rty 10

您可以使用ReflectionClass实例及其getFileName()方法获取声明类的文件名:

$reflector = new ReflectionClass(\Vendor\Package\Class::class);
echo $reflector->getFileName();
Run Code Online (Sandbox Code Playgroud)

  • 哦,优雅. (3认同)
  • @ceejayoz PHP的反射套件可能是它的优点之一. (3认同)