如果我使用太多的立面会影响性能吗?


If I use too many Facades will it effect the performace?

我有很多立面,所以它会降低性能吗?或者如果我想在某个控制器上使用某些类那么我应该怎么做呢,我的意思是良好实践

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实例之外,您应该看不到任何差异。