在PHP接口中是否可以定义具有不同参数的方法?

8 浏览
0 Comments

在PHP接口中是否可以定义具有不同参数的方法?

我正在开发一个服务,该服务被注入了一个Logger对象,但我可以拥有两种不同类型的日志记录器,我计划拥有一个syslog日志记录器和一个队列消息系统日志记录器。这可行吗?

我的想法是创建一个接口:

interface Loggable
{
    public function log() ;
}

然后创建两个实现了该接口的类:

class Syslogger implements Loggable
{
    public function log()
    {
        ...
    }
}
class QMSLogger implements Loggable
{
    public function log($queueName)
    {
        ...
    }
}

我能想到的唯一办法是将一个数组作为参数,并在一个类中使用它,而在另一个类中不使用它...但这有点不好 😛

0