[英]Dependency injection with Laravel Facade
我有一个错误类,为此我制作了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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.