在SilverStripe 4中,当原始方法中没有Extension Hook时如何扩展现有方法?

时间:2018-03-13 02:30:19

标签: php silverstripe silverstripe-4

我想覆盖' 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

1 个答案:

答案 0 :(得分:3)

您想要在loginForm方法上覆盖什么?如果您希望它使用不同的Form类(例如MyMemberLoginForm),您可以告诉Injector在YML中使用您的自定义类,如下所示:

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

因为LoginForm方法不做任何其他操作,只返回表单。