У меня есть класс ошибок, для которого я сделал Facade и ServiceProvider.
Я использую это так:
Err::getLastError();
У меня также есть другой класс для проверки файлов:
FileValidate::IsImage($this->getUpload());
Я хочу ввести фасад Err в FileValidate
так что я использую это так:
FileValidate::Error()->getLastError();
Как мне это сделать?
Теперь мой подход заключается в том, что в FileValidate
класс я добавляю члена:
function Error()
{
return $this;
}
Хотя вышесказанное просто возвращает FileValidate
объект, таким образом, я добавляю другой метод:
function getLastError()
{
return Err::getLastError();
}
Но тогда для каждого метода Err
Я должен сделать альтернативу в FileValidate
и все Err, как в приведенном выше примере. Мне нужно более динамичное решение.
В вашем FileValidate::Error()
метод возвращает класс ошибки, а не экземпляр FileValidate
:
function Error()
{
return app()->make('Err');
}
Это вернет ваш объект ошибки, который должен иметь все необходимые методы без необходимости дублировать их в другом классе без причины.
Другой альтернативой может быть добавление объекта ошибки в FileValidate
конструктор:
public function __construct(Err $error) {
$this->$error = $error;
}
После обновления поставщика услуг проверки вашего файла, вы можете просто вернуться тот объект из вашего Error
метод:
public function Error()
{
return $this->error;
}
Других решений пока нет …