我想为可增删改查的实体创建一个接口(可以保存和删除)。这是我的抽象类:
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
extends AbstractToken
,并且在方法中有一组不同的参数__construct()
:AbstractToken::__construct()
与UsernamePasswordToken::__construct()
.
我的问题是 Symfony 是如何做到这一点的?这和我的代码有什么区别?