如果我使用太多外墙会影响性能吗?

时间:2016-08-23 12:00:41

标签: php laravel laravel-5.2

我有很多外墙所以它会减慢表演的速度吗? 或者,如果我想在某些控制器上使用某些类,那么我该怎么做呢,我的意思是好的做法

1 个答案:

答案 0 :(得分:1)

Facades只是在Laravel的Dependency Injection Container中调用实例的另一种方法。它们可在整个应用程序中使用。

依赖注入实例仅在您声明它们的地方可用,这使您的类更有序。

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主要基于Facades,但现在只需5.x。

就性能而言,除了在Composer中自动加载的附加类X实例之外,您不应该看到任何差异。