Laravel如何设置视图合成器

  介绍

这篇文章主要介绍Laravel如何设置视图合成器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Laravel提供的令人兴奋的功能之一就是视图扩展这个功能,在我看来,一个非常强大的视图扩展,允许开发将变量从全局精准的传递到模板。

<强>怎样使用视图(视图)扩展?

首先你必须要知道两种不同类型的视图扩展,即基于类和闭包。

& lt; ? php    观点::作曲家(& # 39;概要# 39;,,function (视图),{   ,,,视图→美元与(& # 39;用户# 39;,,(& # 39;……& # 39;]);   });//,或者   观点::作曲家(& # 39;概要# 39;,,& # 39;应用\ Http \ ViewComposers \ ProfileComposer& # 39;);

差别非常的明显,闭包容易使用,且不需要投入太多精力去设置,但他们会导致该服务提供者(服务提供者)日渐臃肿。

另一方面,基于类的视图扩展引导你直接将设计原则分离出来,另一个好处是,您可以测试隔离的这段代码,其他开发人员可以更轻松的维护现有代码。

在计算机科学中,关注点分离(SoC)是将计算机程序分解成尽可能少地在功能上重叠的不同特征的过程,关注点是程序中的任何有意思的地方或者焦点。通常,关注点与特征或行为是同义词,传统上通过模块化和封装在信息隐藏的帮助下实现SoC的进步。

<强>理解观点::作曲家方法的参数

在这个例子中,你可以看到的观点::作曲家方法有两个参数。

& lt; ? php    观点::作曲家(& # 39;概要# 39;,,function (视图),{   ,,,视图→美元与(& # 39;用户# 39;,,(& # 39;……& # 39;]);   });//,或者   观点::作曲家(& # 39;概要# 39;,,& # 39;应用\ Http \ ViewComposers \ ProfileComposer& # 39;);

第一个参数是你想要监听的视图的名字,可以是一个字符串或者数组。意思是,如果这个模板视图被渲染了,你的视图管理器就会被触发,并且传递变量到视图。

你也可以使用通配符而不是手动选择所有的模板,你可以方便地使用星号(*),将数据附加到每一个视图,甚至是有很多个子目录的复杂模板。

使用场景通常是需要在每个视图中展示的侧边栏或者导航元素。

& lt; php ?//,为一个视图添加合成器:~/资源/视图/配置文件   观点::作曲家(& # 39;概要# 39;,,…);//,为多个视图添加:,~/资源/视图/配置文件,,~/资源/视图/profile_edit 以及~//视图/profile_settings资源   观点::作曲家([& # 39;概要# 39;,,& # 39;profile_edit& # 39;,, & # 39; profile_settings& # 39;],,…);//,目录通配符:,all  files 拷贝~/*/资源/视图/页   观点::作曲家([& # 39;*页面。* & # 39;],,…),

第二个参数可以是闭包函数也可以是视图作曲家的类名。

两种方法都接收一个视图美元参数,通过这个参数很简单地就能用方法→用()来往视图中增加变量。

& lt; ? php    观点::作曲家(& # 39;* & # 39;,,function (视图),{   ,,,视图→美元与(& # 39;面包屑# 39;,,(& # 39;item  1 & # 39;,, & # 39; item  & # 39;]);   });//,或者,   观点::作曲家(& # 39;* & # 39;,,& # 39;应用\ Http \ ViewComposers \ NavigationComposer& # 39;);//,compose 方法也有,view 美元;参数,   namespace 应用\ \ Http \视图作曲家;   use 照亮\ \视图视图;   class  NavigationComposer   {   ,,,/* *   ,,,,*,@param  View 美元,视图   ,,,,*,@return 空白   ,,,*/,,,public  function 组成(View  $视图)   ,,,{   ,,,,,,,视图→美元(& # 39;导航# 39;,,(   ,,,,,,,,,,,& # 39;items1& # 39;,, & # 39; items2& # 39;,, & # 39; item3& # 39;   ,,,,,,,);   ,,,}   }

<>强设置视图合成器

你可能知道Laravel会使用提供者做很多事情,你就能猜到接下来的是什么吗?是的,我们必须注册一个服务提供者,在提供者内,使用我们刚刚学习的视图合成器。

ViewComposerServiceProvider。php

Laravel如何设置视图合成器