鉴于:
class Foo {
private $bar;
public function setBar(Bar $bar) {
$this->bar = $bar;
}
}
有没有办法使用不是实例的setBar()
参数调用? Bar
$proxy = new Proxy();
$foo = new Foo();
$foo->setBar($proxy);
// with
class Proxy {
}
这个想法是注入一个代理对象而不是一个Bar
实例。该类Proxy
是通用的(在依赖注入框架中),不能实现/扩展Bar
。
反射 API 似乎没有提供任何使之成为可能的东西。我希望在不使用 PHP 扩展(标准 PHP 安装 > 5.3)的情况下做到这一点(eval
如果可能的话,我试图不理会)。
注意:是的,这是奇怪的东西,我期待对此发表评论,但请留下“答案”以获得问题的实际答案。这不是生产代码。