Pracuję nad usługą, do której wtryskuje się obiekt Logger, ale mogę mieć 2 różne rodzaje rejestratorów, planuję mieć rejestrator syslog i program rejestrujący komunikaty kolejki. czy to możliwe?Czy jest możliwe zdefiniowanie metody z różnymi parametrami w interfejsie PHP?
Pomysł jest o interfejs:
interface Loggable
{
public function log() ;
}
i 2 klasy implementujące ten interfejs:
class Syslogger implements Loggable
{
public function log()
{
...
}
}
class QMSLogger implements Loggable
{
public function log($queueName)
{
...
}
}
Jedynym sposobem mogę przyjść ze jest o tablicę jako parametr i używać go na jednej klasie, a nie na drugiej ... ale to trochę śmierdzi: P
Jeśli metoda akceptuje parametr w jednym przypadku, a nie w innym, to nie jest to ten sam interfejs! – deceze
Tak Przypuszczam, że jest to bardziej poprawny sposób, ale chciałem być w stanie wstrzyknąć obie klasy, aby móc zmienić system rejestrowania ... Myślę, że byłem w błędzie – Khriz
Cóż, to jest rzeczywiście możliwe w przypadku '$ queueName' domyślnie NULL ('public function log ($ queueName = null) {...}'), ale zgadzam się z deceze tutaj. –