如何获取调用另一个脚本中定义的类方法的脚本的路径,在类中?
也就是说,我想调用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'
。
答案 0 :(得分:0)
此问题的一种可能解决方案是使Call()
方法或装饰器初始化接受$file_path
传递__FILE__
的参数:
PHP代码
$obj = new AsyncDecorator('ClassName', __FILE__);
$obj->Call('methodName');
这有一个小缺点,即每次创建此对象时都要求传递文件路径,这可能会添加不必要的参数,并且不能尽可能简单地使用无缝。
答案 1 :(得分:0)
有一个gist here带有一个函数来获取调用类。