如何获取脚本调用另一个脚本中的方法的路径?

时间:2015-02-07 18:39:58

标签: php oop

如何获取调用另一个脚本中定义的类方法的脚本的路径,类中?

也就是说,我想调用b.php中定义的类方法 - 来自a.php

PHP代码

# a.php

require 'b.php';

$obj = new AsyncDecorator('ClassName');
$obj->Call('methodName');

...如前所述,b.php中定义的类与此代码段相似:

PHP代码

# b.php

class AsyncDecorator
{
    public function Call($method)
    {
        # Currently equals to b.php - I need it to be 'a.php'
        $require = __FILE__;
    }
}

也就是说,我需要知道调用脚本是a.php,我需要动态地执行它。如果我在AsyncDecorator中创建并使用c.php课程,那么$require应该等于'c.php'

2 个答案:

答案 0 :(得分:0)

此问题的一种可能解决方案是使Call()方法或装饰器初始化接受$file_path传递__FILE__的参数:

PHP代码

$obj = new AsyncDecorator('ClassName', __FILE__);
$obj->Call('methodName');

这有一个小缺点,即每次创建此对象时都要求传递文件路径,这可能会添加不必要的参数,并且不能尽可能简单地使用无缝

答案 1 :(得分:0)

有一个gist here带有一个函数来获取调用类。