付费课程, 订阅后即可观看

分库分表 - 扩展 Request 以及 Blade ,让整体逻辑更加简洁清晰

本期Laravel 多租户分库分表课程咱们对Request以及Blade进行扩展,扩展之后,咱们就可以在视图中将逻辑整理的更为清晰明了,增强可维护性和代码的可阅读性,在工作中,咱们可以多采用这些手段对项目进行改造

向前 2024.01.10 01:26

1. 这里有一个疑问?

CODING10

就是 Macro 这个扩展方法是不是应该写到  TenantServiceProvider 类中的 boot 方法中,我看你视频上写到了  register 中了。
但是视频上你这边也,没出什么问题。我在猜测,还是跟服务注册的顺序有关系吧。


2. 在 Laravel 要想使用一个服务,这个服务应该是被注册过的。

这里面有一个顺序问题。
Request::macro 方法在  Request 服务注册前调用不行。
Request::macro 方法在  Request 服务注册之后调用可以。
Request::macro 其实放到 boot 方法中是最稳妥的,因为所有服务注册之后,才会走 boot 方法,肯定不会出现这个问题。
Request::macro 放到 register 方法中,需要考虑 Request 服务和当前服务提供者注册的先后顺序,保证 Request 提前注册。


3. 咱这里没有出现问题是: TenantServiceProvider 服务提供者放到了最后了

Coding10


国营 2024.01.10 02:46

感谢朋友的补充,考虑的非常周到,按照规范和框架本身的运行模式来说,的确应该如朋友所说,这部分的补充对其他人也会非常有帮助,要是大家都像你这么深入探究,那就太好了。


有时候我们需要跳出框架的逻辑来满足自身项目的某些特殊需求,把某些看似应该放到 boot 中的内容放到 register 中,为的是后续某些服务在注册的时候用到之前的某些服务,核心还是保证它运行态时不出问题,但我这里的用法确实不那么严谨了。


非常欢迎朋友对之前不完善或者不严谨的地方多加补充说明,一起进步吧。

微信扫码登录