官方文档说:
如果打开Laravel随附的config / app.php文件,您将看到一个providers数组。这些都是将为您的应用程序加载的所有服务提供程序类。当然,其中许多是“延迟的”提供程序,这意味着它们不会在每个请求上都加载,而仅在实际需要它们提供的服务时才加载。
和
如果您的提供者仅在服务容器中注册绑定,则可以选择将其注册推迟到实际需要其中一个注册的绑定为止。延迟加载此类提供程序将提高应用程序的性能,因为并非每次请求都从文件系统中加载该提供程序。
我怎么知道一个包是否使用了“延迟的”服务提供者,而该提供者不会在每个请求中都加载?
如果未设置defer属性,则隐含什么默认值?
...以及在bootstrap / cache / services.php的缓存清单中,提供者,渴望者,延迟者和何时有什么区别?
那么,如何知道某个软件包对于整个应用程序而言是否繁重?
例如,我要使用“ cviebrock / eloquent-sluggable”包,该包非常简单,并且使用trait在模型中添加功能。而且还实现了带有绑定的服务,该绑定将在观察者中使用,我怎么知道是否仅在保存或编辑模型时才加载该服务?
谢谢。
如果未设置defer属性,则隐含什么默认值?
默认值protected $defer
是false
。
...以及在bootstrap / cache / services.php的缓存清单中,提供者,渴望者,延迟者和何时有什么区别?
您回答了自己的问题,所以我认为无需赘述。
那么,如何知道某个软件包对于整个应用程序而言是否繁重?
剖析它。引导您的应用程序并测试负载。Defer和undefer提供了获取样本的方法。
例如,我要使用“ cviebrock / eloquent-sluggable”包,该包非常简单,并且使用trait在模型中添加功能。而且还实现了带有绑定的服务,该绑定将在观察者中使用,我怎么知道是否仅在保存或编辑模型时才加载该服务?
实现该boot
方法的任何提供程序都不能被推迟。该程序包实现了该boot
方法。因此,这是一个引导服务提供者,将随每个请求一起加载。
归档时间: |
|
查看次数: |
1132 次 |
最近记录: |