laravel 视图组件、服务注入
视图组件就是在视图被渲染前,会被调用的闭包或类方法。如果你想在每次渲染某些视图时绑定数据,视图组件可以帮你把这样的程序逻辑都组织到同一个地方。
我们需要在我们的服务提供者中注册一个视图 composer 则应该在 boot 方法中完成。此方法会在所有其它的服务提供者被注册后才被调用,意味着你能访问已经被框架注册的所有其它服务
请注意,Laravel 没有默认的目录来放置视图组件。你可以随意把它们放到任何地方。
你可以创建一个 App\Http\ViewComposers
目录
1 |
|
1 |
|
getSettings() 方法如下
1 | // 这是 laravel 5.3 版本 |
1 |
|
使用
1 |
|
缓存
源码 cache() 方法如下
1 | if (! function_exists('cache')) { |
edvinaskrucas/settings
执行 composer require edvinaskrucas/settings
包地址
服务注入
@inject 命令可以取出 Laravel 服务容器 中的服务。传递给 @inject 的第一个参数为置放该服务的变量名称,而第二个参数为你想要解析的服务的类或是接口的名称
1 | @inject('metrics', 'App\Services\MetricsService') |