可能是我遗漏了一些明显的东西。
我有一个带有 set 和 get 方法的本地类。
class DBStorage extends NativeClass{
public function get($key);
public function set($key,value);
}
我大部分时间都想使用它,但是,如果我打开系统调试标志。
我希望set
andget
方法被以下内容重载:
IF DEBUG IS ON{
class DBStorage extends NativeClass{
public function get($key){
var_dump($key);
parent::get($key);
}
public function set($key,$value){
var_dump($key,$value);
parent::set($key,$value);
}
}
}
NativeClass 是用 C 编写的。它是一个扩展(phpredis,但它不相关)。我将如何做到这一点?我在 PHP 的 5.3 分支上。
只是为了确保......如果调试关闭,DBStorage
将是:
class DBStorage extends NativeClass{}
如果调试打开,它将是:
class DBStorage extends NativeClass{
public function get($key){
var_dump($key);
parent::get($key);
}
public function set($key,$value){
var_dump($key,$value);
parent::set($key,$value);
}
}
我确实尽量避免 IF 的混乱(真实类中有几十个函数)
public function get($key) {
if (DEBUG) {
var_dump($key);
}
return parent::get($key);
}