SilverStripe 4中,原方法中没有Extension Hook的情况下,如何扩展已有方法?
In SilverStripe 4, how to extend an existing method when there is no Extension Hook inside the original method?
我想覆盖 'LoginHandler' class 中的 'loginForm' 方法。我正在尝试为此使用下面给出的代码。但它不起作用。
LoginHandlerExtension.php
<?php
use SilverStripe\Core\Extension;
class LoginHandlerExtension extends Extension {
public function loginForm() {
return 'xxxxxx';
}
}
app.yml
SilverStripe\Security\MemberAuthenticator\LoginHandler:
extensions:
- LoginHandlerExtension
您想在 loginForm 方法上重写什么?如果您希望它使用不同的形式 class(例如 MyMemberLoginForm
),您可以告诉 Injector 在 YML 中使用您的自定义 class,如下所示:
SilverStripe\Core\Injector\Injector:
MemberLoginForm:
class: My\Namespaced\LoginForm
因为 LoginForm 方法除了 return 表单之外什么都不做。
我想覆盖 'LoginHandler' class 中的 'loginForm' 方法。我正在尝试为此使用下面给出的代码。但它不起作用。
LoginHandlerExtension.php
<?php
use SilverStripe\Core\Extension;
class LoginHandlerExtension extends Extension {
public function loginForm() {
return 'xxxxxx';
}
}
app.yml
SilverStripe\Security\MemberAuthenticator\LoginHandler:
extensions:
- LoginHandlerExtension
您想在 loginForm 方法上重写什么?如果您希望它使用不同的形式 class(例如 MyMemberLoginForm
),您可以告诉 Injector 在 YML 中使用您的自定义 class,如下所示:
SilverStripe\Core\Injector\Injector:
MemberLoginForm:
class: My\Namespaced\LoginForm
因为 LoginForm 方法除了 return 表单之外什么都不做。