如果我在基于此answer的Laravel应用程序中创建了许多Facade,我的应用程序性能会降低吗?
答案 0 :(得分:2)
Facade只是服务定位器,它们不会直接影响您的应用程序性能,但您的服务会。您拥有的服务提供商越多,您启动的服务和类就越多,因此,您用于启动应用程序的内存,磁盘和处理器就越多,因此您的应用程序需要更多时间来启动。 / p>
但是Laravel让你满意。您可以defer
服务提供商中的服务实例化例程:
class ServiceProvider {
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = true;
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return array('put-here-your-service-alias');
}
}
当您的应用真正需要访问该特定服务时,Laravel才会加载您的服务提供商。