2017-05-14 74 views
0

我看到了SO警告,The question you're asking appears subjective and is likely to be closed当我发布这个。在Laravel,为什么“你应该只将事情绑定到服务容器中,并且从来没有尝试注册其他任何东西......”

我继续发布它,因为它来自权威来源 ......这是实际的Laravel documentation

我问可以为给定(见下文)的警告给予什么样的例子什么他们的意思和

我正在读的服务供应商的文件,发现如下:

写作服务提供商

所有服务供应商延长照亮的\ Support \的ServiceProvider 类。大多数服务提供商都包含注册和启动方法。 在注册方法中,您应该只将绑定到 服务容器中。您绝不应该尝试在 注册方法中注册任何事件 听众,路由或任何其他功能。

Source is here

没有例子说明,我不完全得到什么,他们的意思是说声明。

答案可能已在其他地方回答过,在这种情况下,我很抱歉,因为我没有找到它。

这是什么意思?你能举一个不该做什么的例子吗?

回答

2

在所有提供者已被注册后,它们被“引导”。

使用服务提供者时常见的错误是试图在注册方法中使用另一个提供者提供的服务。由于在注册方法中,我们无法保证所有其他提供者都已加载,所以您尝试使用的服务可能尚未提供。因此,使用其他服务的服务提供商代码应始终处于启动方法中。注册方法只能用于,你猜对了,用容器注册服务。在引导方法中,你可以做任何你喜欢的事情:注册事件监听器,包含路由文件,注册过滤器。

相关问题