【发布时间】:2018-02-18 00:55:39
【问题描述】:
我正在阅读 Laravel 文档以更深入地了解,这将是我第二次遇到一些困惑。
不久前,我正在观看一个 Laracasts 视频,其中我们在 AppServicesProvider 注册方法中实现了一个视图作曲家。
看起来像这样:
public function register()
{
view()->composer('layouts.sidebar', function ($view) {
$archives = \App\Post::archives();
$tags = \App\Tag::has('posts')->pluck('name');
$view->with(compact('archives', 'tags'));
});
}
这样做的目的是使档案和标签可用于我们的侧边栏视图,几乎在每个页面中都可用。 (Laracast 视频涉及从头开始构建博客)
到目前为止一切顺利。
今天,在阅读视图编写器的文档时,我遇到了this example:
/**
* Register bindings in the container.
*
* @return void
*/
public function boot()
{
// Using class based composers...
View::composer(
'profile', 'App\Http\ViewComposers\ProfileComposer'
);
// Using Closure based composers...
View::composer('dashboard', function ($view) {
//
});
}
现在,我想我了解创建自己的 ComposerServiceProvider 和基于类的作曲家与基于闭包的作曲家。我困惑的根源在于,这是在 boot() 方法与 register() 方法中完成的。
这完全有可能是我写错了地方。如果我考虑一下,在register() 方法中几乎没有意义,因为 register 应该只用于注册服务。在调用所有寄存器方法后调用引导。如果有人能帮我解决这个问题,我将不胜感激!
视图作曲家属于
register()方法还是boot()方法?和 如果它属于register()方法,是否只是巧合 它仍然对我有用吗?
【问题讨论】: