我有很多立面,所以它会降低性能吗?或者如果我想在某个控制器上使用某些类那么我应该怎么做呢,我的意思是良好实践
facade只是调用Laravel依赖注入容器中存储的实例的另一种方式。它们在整个应用程序中都可用。
依赖注入的实例只在你声明它们的地方可用,使你的类更好地有序。
use Dependency;
class Class
{
public function foo()
{
return Dependency::foo();
}
}
我个人认为这种方法更混乱,除非你直接在代码中搜索,否则你可能很难理解依赖项实际上是从哪里来的。
use Author'Library'Dependency;
class Class
{
public function __construct(Dependency $dependency)
{
$this->dependency = $dependency;
}
public function foo()
{
return $this->dependency->foo();
}
}
相反,这种方法提供了需要在类中使用的实例的直接信息。
就好的实践而言,我相信这只是一个偏好的问题,即使Laravel 4。x主要基于立面,但现在基于5。
在性能方面,除了在Composer中自动加载了一个额外的类X实例之外,您应该看不到任何差异。