2016-08-23 4 views
-1

У меня много фасадов, так что это замедлит выступления? Или, если я хочу использовать некоторые классы на каком-то контроллере, поэтому, как я должен это делать, я имею в виду хорошие практикиЕсли я использую слишком много фасадов, это повлияет на производительность?

ответ

1

Фасады - это еще один способ вызова экземпляров, спрятанных в контейнере для впрыскивания зависимых от 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.x намного меньше.

С точки зрения производительности, вы не должны видеть никаких различий, кроме Дополнительный класс X экземпляр автозагрузка в Композиторе.

Смежные вопросы