我有一个错误类,我为它做了一个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中做出替代,就像上面的例子一样。我需要一个更有活力的解决方案。
答案 0 :(得分:2)
在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;
}