我想为可 CRUD(可以保存和删除)的实体创建一个接口。这是我的抽象类:
abstract class AbstractCrudableEntity extends AbstractEntity
{
abstract public function doSave();
abstract public function doDelete();
}
我的实现类需要这些方法的一些额外参数。这是实现类的签名:
class Contact extends AbstractCrudableEntity {
public function doSave(User $user, \UberClientManager $manager);
public function doDelete(User $user, \UberClientManager $manager);
}
我知道 PHP 要求实现类具有与父类相同的方法参数(有几个问题可以回答这个问题:this, 例如)。所以这不是问题。
然而,我最近在 Symfony 中遇到了一些处理身份验证令牌的代码。班上UsernamePasswordToken
延伸AbstractToken
,并且有一组不同的参数__construct()
方法:AbstractToken::__construct() versus UsernamePasswordToken::__construct().
我的问题是 Symfony 如何做到这一点?这和我的代码有什么区别?
重写构造函数是特例:
与其他方法不同,PHP 不会生成E_STRICT
级别错误消息时__construct()
被与父级不同的参数覆盖__construct()
方法有。
You can not用其他方法做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)