0

基本的にクラスのライブラリを含むファイルがあります。ファイルに含まれている別のlogEngineクラスを使用して、これらのクラスからのエラーをログに記録しています。これらのクラスを呼び出すクラスからプロパティを取得し、ログに記録されたエラーと一緒に保存したいと思います。別の言い方をすれば、ファイルAには、ファイルBとは異なるクラスを呼び出すクラスがあります。ファイルBのクラスは、ファイルCにあるクラスからのエラーをログに記録します。ファイルBのクラスに、ファイルAのインスタンス化されたクラスからプロパティをプルさせます。ファイルCのロギングクラスに含めます。

より視覚的:

ファイルA:ストレージ->ファイルB:ファイルAのクラスライブラリ(ストレージ)->ファイルC:ファイルBのログクラス

ファイルAの呼び出し元オブジェクトのプロパティを、ファイルBのオブジェクトのファイルCのロギングクラスを使用して保存する必要があります。

私のstackoverflowを助けてください、あなたは私の唯一の希望です。これが紛らわしい場合は、お詫び申し上げます。これが可能かどうかはわかりません。コードを書き直さなくても済むようにしています。

4

2 に答える 2

0

インスタンスをロガーに渡します。

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


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

私は答えを見つけました。bebug_backtrace()を使用します。以下の例では、クラス「b」に値「san marino」のプロパティ「store_name」があり、クラス「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 に答える