繁体   English   中英

Laravel Facade的依赖注入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM