小编the*_*ler的帖子

PHP:"......的声明应与......的声明兼容"

我想为CRUDable(可以保存和删除)的实体创建一个接口.这是我的抽象类:

abstract class AbstractCrudableEntity extends AbstractEntity
{
    abstract public function doSave();
    abstract public function doDelete();
}
Run Code Online (Sandbox Code Playgroud)

我的实现类需要为这些方法添加一些额外的参数.这是实现类的签名:

class Contact extends AbstractCrudableEntity {
    public function doSave(User $user, \UberClientManager $manager);
    public function doDelete(User $user, \UberClientManager $manager);
}
Run Code Online (Sandbox Code Playgroud)

我理解PHP要求实现类与父类具有相同的方法参数(有几个问题可以回答这个问题:例如,这个).所以这不是问题.

但是,我最近在Symfony中遇到了一些处理身份验证令牌的代码.类UsernamePasswordToken延伸AbstractToken,并具有一组不同的参数中__construct()的方法:AbstractToken::__construct()UsernamePasswordToken::__construct().

我的问题是Symfony是如何做到这一点的?这与我的代码有什么区别?

php symfony

4
推荐指数
1
解决办法
2961
查看次数

标签 统计

php ×1

symfony ×1