我正在開發一個正在注入Logger對象的服務,但我可以有兩種不同類型的記錄器,我計劃使用syslog記錄器和隊列消息系統記錄器。這可能嗎?是否可以在PHP界面中使用不同參數定義方法?
的想法是具有接口:
class Syslogger implements Loggable
{
public function log()
{
...
}
}
class QMSLogger implements Loggable
{
public function log($queueName)
{
...
}
}
我能來與被具有陣列作爲參數,並使用它的唯一方法:實現該接口
interface Loggable
{
public function log() ;
}
和2類在一個類和不使用另一個......但這是有點臭:P
如果該方法在一種情況下接受參數而不在另一種情況下接受參數,它不是相同的接口! – deceze
是的,我想這是更正確的方法,但我想能夠注入任何一類,以便能夠更改日誌記錄系統......我想我錯了 – Khriz
那麼這實際上可能的情況下'$ queueName'默認爲NULL ('公共函數日誌($ queueName = null){...}')但我同意在這裏欺騙。 –