2012-09-18 52 views
0

我有一個基本上包含一個類庫的文件。我使用文件中包含的一個單獨的logEngine類來記錄這些類中的錯誤。我想從調用這些類的類中提取一個屬性,並將其與存儲的錯誤一起存儲。換句話說,文件A有一個從文件B調用不同類的類。文件B的類從位於文件C中的類中記錄錯誤。我希望文件B的類將屬性從文件A中的實例類中提取出來,並且它包括在從文件C.日誌類訪問來自呼叫者的對象屬性

更多視覺:

文件:寄存 - >文件B:類庫用於文件A(存儲) - >文件C:日誌類文件B

我需要一個來自文件A中調用對象的屬性,使用來自文件B的對象的文件C中的日誌記錄類來存儲。

幫助我的stackoverflow,你是我唯一的希望。如果這令人困惑,我表示歉意。我不確定這是否可能。我試圖避免重寫任何代碼。

回答

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(); 
0

傳遞到例如記錄器:

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


// Logger 
function __construct($caller){ 
    $this->foo = $caller->getBar(); 
}