我有很多外墙所以它会减慢表演的速度吗? 或者,如果我想在某些控制器上使用某些类,那么我该怎么做呢,我的意思是好的做法
答案 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实例之外,您不应该看到任何差异。