Iniezione di dipendenza con Laravel Facade

Ho una class di errore per la quale ho realizzato una facciata e un ServiceProvider.

Lo uso in questo modo:

Err::getLastError(); 

Ho anche un'altra class per la validation dei file:

 FileValidate::IsImage($this->getUpload()); 

Voglio iniettare la facciata Err nel FileValidate modo che io lo usi in questo modo:

 FileValidate::Error()->getLastError(); 

Come dovrei farlo?

Ora il mio approccio è che, nella class FileValidate , aggiungo un membro:

 function Error() { return $this; } 

Sebbene quanto sopra appena restituisce l'object FileValidate , quindi aggiungo un altro metodo:

 function getLastError() { return Err::getLastError(); } 

Ma poi per each metodo di Err , dovrei fare un'alternativa in FileValidate e tutti Err come nell'esempio precedente. Ho bisogno di una soluzione più dynamic.

Nel FileValidate::Error() restituisce la class di errore anziché un'istanza di FileValidate :

 function Error() { return app()->make('Err'); } 

Ciò restituirà l'object error che dovrebbe avere qualsiasi metodo su di esso di cui hai bisogno senza whererli duplicare su un'altra class senza motivo.

Un'altra alternativa potrebbe essere quella di aggiungere l'object error nel FileValidate di FileValidate :

 public function __construct(Err $error) { $this->$error = $error; } 

Dopo aver aggiornato il provider di servizi di validation del file, è ansible restituire l'object dal proprio metodo Error :

 public function Error() { return $this->error; }