几天前我开始学习Laravel,我无法理解一种机制:有AppServiceProvider,我可以在其中注册(绑定)我的自定义类,接口等。但是在许多教程中,当作者创建自定义类进行注册时他们还创建自定义服务提供程序类,而不是在AppServiceProvider中使用“register”方法。我不明白,为什么他们不使用AppServiceProvider?
此外,我查看了其他内置服务提供程序,并发现了一些未在official guide中描述的方法和字段(例如,AuthServiceProvider具有受保护的$ policies字段)。也许,理解这有助于我理解,我可以在哪里使用标准提供商和自定义?但我不能谷歌任何回答这个问题的链接。
感谢您的回答。
答案 0 :(得分:1)
主要是关于代码的可读性。您可以将所有内容放在AppServiceProvider
中并且它可以正常工作,但随着时间的推移,文件将会很长并且非常难以定位,因此您可能需要分离内容并为您的每个部分制作自定义ServiceProviders应用逻辑。
答案 1 :(得分:0)
您需要如何构建文件和文件夹。至于我,我尝试使我的文件模块化(在它自己的模块中分离一个功能,例如,Authentication是一个模块)。与此模块相关的分组服务提供程序将位于单独的服务提供程序中,以避免混淆AppServiceProvider。