В SilverStripe 4 как расширить существующий метод, если в исходном методе нет Extension Hook?

Я хочу переопределить метод loginForm в классе LoginHandler. Я пытаюсь использовать приведенный ниже код для этого. Но это не работает.

LoginHandlerExtension.php

    <?php

use SilverStripe\Core\Extension;

class LoginHandlerExtension extends Extension {

public function loginForm() {
return 'xxxxxx';
}
}

app.yml

SilverStripe\Security\MemberAuthenticator\LoginHandler:
extensions:
- LoginHandlerExtension

2

Решение

Что бы вы хотели переопределить в методе loginForm? Если вы хотите использовать другой класс Form (например, MyMemberLoginForm), вы можете указать Injector использовать ваш пользовательский класс в YML следующим образом:

SilverStripe\Core\Injector\Injector:
MemberLoginForm:
class: My\Namespaced\LoginForm

так как метод LoginForm ничего не делает, кроме как возвращает форму.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]