【发布时间】:2012-10-31 20:48:24
【问题描述】:
我想为可 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() 与 UsernamePasswordToken::__construct()。
我的问题是 Symfony 是如何做到这一点的?这和我的代码有什么区别?
【问题讨论】: