我想在全局范围的Debug类中调用我的dump方法。 像这样:
class Debug {
...
function dump($var) {}
...
}
dump('toto');
所以我想把垃圾转移到所有地方但是保持我的班级。
如果有可能,我不想这样做:
dump(var) {
$debug = new Debug();
$debug->dump(var);
}
有没有办法导出我班级的方法?
抱歉我的英语不好。
答案 0 :(得分:0)
如果您只想格式化输出以进行转储,则可以使用静态方法:
class Debug {
...
static function dump($var) {}
...
}
并称之为:
Debug::dump('hola');
使用静态方法不是推荐的做法,但是,如果您不依赖于Debug::debug()
方法,并且您将仅用于格式化或记录参数,那么就没有问题。用它
<强>更新强>
由于Debug
类是供应商类,您可以使用像Python https://pimple.symfony.com/这样的PHP DI容器,因此在将Debug
类注册为服务后,您可以随处调用它,但是您需要在所有需要调试的类中注入它
如果你不想使用容器,那么使用静态方法扩展调试功能是一个肮脏的技巧,但是我不推荐它,我在这里粘贴这个想法:
class Debug {
function dump($var) {
echo $var;
}
}
class DebugExtended {
static function myDump($var) {
$debug = new Debug();
$debug->dump($var);
}
}
DebugExtended::myDump($debug);