从父类PHP自动构造子类

我不知道这是否可行,所以我会尽力解释.

我希望有一个可以通过“插入”子类轻松扩展的父类,该子类可能存在也可能不存在.

class Foo {
__construct(){
   $this->foo = "this is foo";
}
}

class Bar extends Foo {
   function construct(){
    parent :: __construct;
  }
   $this->foo = "foo is now bar";
}

但我不想每次需要时都用$bar = new Bar初始化Bar类,Boo类来自Foo,我不知道有哪些子类可用..理想情况下,我希望它缩放,所以没关系.我希望子类在有新Foo调用时自动进行初始化.

这有可能吗?有没有更好的方法可以解决这个问题,以便我可以使用子类在父类的每个实例中修改变量?我在WordPress中工作,所以我想我可以给Foo类一个动作挂钩,任何子类都可以插入其中,但是我想知道是否有一种自然的PHP方法可以实现这一点.

解决方法:

我认为,根据您提供的信息,如果您真的无法以任何方式编辑Foo的实现,那么您就很不走运了.

继承对您不起作用,因为这将要求Bar成为实例化的类,而不是Foo.当其他代码将创建Foo类型的新对象时,您不能使用Bar默默地使用Foos功能.

鉴于您提到的是与Wordpress有关的,您总是可以要求插件开发人员在其init进程中添加钩子,以允许您扩展功能.基本上,这就是Wordpress允许第三方代码扩展其代码的方式.

上一篇:框架-SPI四种模式+通用设备驱动实现-源码


下一篇:php-类变量的作用域解析运算符