Es un problema más generico de POO, que nada, si tu implementas una interface, es OBLIGATORIO que los métodos que expone la interfaz los uses tal cual, esa es la razón de las interfaces, es un contrato.
Mira el siguiente ejemplo:
Código PHP:
Ver originalinterface Encendible
{
public function enciende($objeto);
}
class Cerillo implements Encendible
{
public function enciende($objeto)
{
$objeto->enciende();
}
}
class Foco implements Encendible
{
public function enciende() // Fatal error Declaration of Foco::enciende() must be compatible with that of Encendible::enciende()
{
echo "prendi";
}
}
Para remediar tu problema, al declarar el constructor, este tiene que aceptar los mismos argumentos y en el mismo orden que el constructor de la interfaz.
Saludos.