0

我有一个文件,它基本上包含一个类库。我使用文件中包含的单独 logEngine 类记录这些类的错误。我想从调用这些类的类中提取一个属性,并将其与记录的错误一起存储。换句话说,文件A有一个类从文件B中调用不同的类。文件B的类记录来自文件C中的类的错误。我希望文件B的类从文件A中的实例类中提取一个属性,并且将它包含在文件 C 的日志记录类中。

更直观:

文件 A:存储 -> 文件 B:文件 A(存储)的类库 -> 文件 C:文件 B 的日志记录类

我需要使用文件 C 中的日志记录类从文件 B 的对象中存储文件 A 中调用对象的属性。

帮助我stackoverflow,你是我唯一的希望。如果这令人困惑,我道歉。我不确定这是否可能。我试图避免重写任何代码。

4

2 回答 2

0

我想出了答案。您使用 bebug_backtrace()。在下面的示例中,类“b”的属性“store_name”的值为“san marino”,并且正在调用类“a”。类“a”使用回溯从其调用类“b”类中获取属性“store_name”及其值。

<?php

class a {
private $property;
function __construct($value) {
$this->property = $value;
$btrace = debug_backtrace();
$store_name = $btrace[1]["object"]->store_name;
echo $store_name;
}
}

class b {
public $store_name = "san marino";
function __construct() {
$test = new a("Prueba");
}
}

$c = new b();
于 2012-09-27T18:40:48.300 回答
0

将实例传递给记录器:

// Class A
$logger = new Logger($this);    
$logger->doSomething($someParams);


// Logger
function __construct($caller){
    $this->foo = $caller->getBar();
}
于 2012-09-18T19:16:44.853 回答