Я установил конкретный модуль в моей установке SilverStripe. Ниже структураРасширение расширения модулей SilverStripe
- Root
- framework
- cms
- mymodule
- code
- extensions
- CustomClass.php
каталогов Ниже приведен пример CustomClass.php
class CustomClass extends Extension {
public function init() {
}
public function customMethod() {
}
}
мне нужно переопределить customMethod
метод CustomClass
класса. Я мог бы легко изменить этот метод, но изменение здесь вызовет проблемы в будущем, если модули будут обновлены. Все внесенные изменения будут потеряны.
Для этого я хочу расширить класс расширения, используемый в модулях.
Я создал расширение /mysite/extensions/MyCustomClass.php
class MyCustomClass extends Extension {
public function customMethod() {
//do my code here
}
}
, но я понятия не имею, как применить это. Я думал CustomClass::add_extension("MyCustomClass ")
, но, конечно, это не сработает, потому что add_extension
метод не существует в CustomClass
.
Как мы справляемся с этим сценарием? Можно ли использовать Injector вместо этого? Если да, то как его можно вызвать в mysite/_config.php
вместо _config.yml
?