【发布时间】:2016-08-08 04:19:23
【问题描述】:
我在 SilverStripe 安装中安装了一个特定模块。以下是目录结构
- Root
- framework
- cms
- mymodule
- code
- extensions
- CustomClass.php
这里是CustomClass.php的例子
class CustomClass extends Extension {
public function init() {
}
public function customMethod() {
}
}
我需要重写CustomClass 类的customMethod 方法。我可以很容易地更改此方法,但如果模块更新,此处更改将导致将来出现问题。所做的所有更改都将丢失。
为此,我想扩展模块中使用的扩展类。
我创建了一个扩展/mysite/extensions/MyCustomClass.php
class MyCustomClass extends Extension {
public function customMethod() {
//do my code here
}
}
但我不知道如何应用它。我以为CustomClass::add_extension("MyCustomClass ") 但这肯定行不通,因为CustomClass 中不存在add_extension 方法。
我们如何应对这种情况?我可以改用注射器吗?如果是,如何在mysite/_config.php而不是_config.yml中调用它?
【问题讨论】:
标签: silverstripe