タイトルがはっきりしない場合は、お詫び申し上げます。説明させてください...
テンプレートクラスの呼び出し'page'があります。初期化するときに、$modeを設定することでデバッグモードになるように設定できます。
問題は、データベースクラスもあり、「page」がデバッグモードになっているという事実を共有したいのですが、それを行うための最良の方法がわかりません...「page」を「db」に拡張することはできません。 'page'が実際に'db'クラスを呼び出す場所はありません。それは常に他のクラスで起こっています。
繰り返しになりますが、これが不明な場合は申し訳ありません...私は役立つコードの本当にシンプルなバージョンを提供しようとしました...
class page {
public $mode; // what mode the page is in (debug/normal)
public function __construct($constructVars) {
$this->mode = $constructVars["mode"]; //debug
}
public function debug($message){
if ($this->mode == "debug"){
$fh = fopen("debug.txt", 'a') or die("can't open debug file");
fwrite($fh, date("Y-m-d H:i:s")." : ".$message."\n");
fclose($fh);
}
}
}
class db extends PDO {
public function debugOutput() {
$page = new page();
if ($page->mode == "debug"){
$fh = fopen("debug.txt", 'a') or die("can't open debug file");
fwrite($fh, $message."\n");
fclose($fh);
}
}
}
繰り返しになりますが、これから出てくる答えだと思うので、dbを含めるようにページを拡張することはできません。